public class org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase extends org.graalvm.compiler.phases.Phase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase
  super_class: org.graalvm.compiler.phases.Phase
{
  private static final org.graalvm.compiler.debug.CounterKey OsrWithLocksCount;
    descriptor: Lorg/graalvm/compiler/debug/CounterKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.compiler.serviceprovider.SpeculationReasonGroup OSR_LOCAL_SPECULATIONS;
    descriptor: Lorg/graalvm/compiler/serviceprovider/SpeculationReasonGroup;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 83
            ldc Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
         3: .line 97
            ldc "OSRWithLocks"
            invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
            putstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.OsrWithLocksCount:Lorg/graalvm/compiler/debug/CounterKey;
         4: .line 103
            new org.graalvm.compiler.serviceprovider.SpeculationReasonGroup
            dup
            ldc "OSRLocal"
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            dup
            iconst_1
            ldc Lorg/graalvm/compiler/core/common/type/Stamp;
            aastore
            dup
            iconst_2
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
            invokespecial org.graalvm.compiler.serviceprovider.SpeculationReasonGroup.<init>:(Ljava/lang/String;[Ljava/lang/Class;)V
            putstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.OSR_LOCAL_SPECULATIONS:Lorg/graalvm/compiler/serviceprovider/SpeculationReasonGroup;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase this
         0: .line 83
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.Phase.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase;

  private static boolean supportOSRWithLocks(org.graalvm.compiler.options.OptionValues);
    descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.options.OptionValues options
         0: .line 100
            getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$Options.SupportOSRWithLocks:Lorg/graalvm/compiler/options/OptionKey;
            aload 0 /* options */
            invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.graalvm.compiler.options.OptionValues options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  options  Lorg/graalvm/compiler/options/OptionValues;
    MethodParameters:
         Name  Flags
      options  

  protected void run(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=28, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 108
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 2 /* debug */
        start local 2 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 109
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getEntryBCI:()I
            iconst_m1
            if_icmpne 4
         2: .line 112
            getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
            ifne 3
            aload 1 /* graph */
            getstatic org.graalvm.compiler.nodes.EntryMarkerNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.isEmpty:()Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 113
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            return
         4: .line 115
      StackMap locals:
      StackMap stack:
            aload 2 /* debug */
            iconst_4
            aload 1 /* graph */
            ldc "OnStackReplacement initial at bci %d"
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getEntryBCI:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 118
            iconst_m1
            istore 4 /* maxIterations */
        start local 4 // int maxIterations
         6: .line 119
            iconst_0
            istore 5 /* iterations */
        start local 5 // int iterations
         7: .line 121
            aload 1 /* graph */
            invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.getEntryMarker:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            astore 6 /* originalOSRNode */
        start local 6 // org.graalvm.compiler.nodes.EntryMarkerNode originalOSRNode
         8: .line 122
            aload 6 /* originalOSRNode */
            invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.osrLoop:(Lorg/graalvm/compiler/nodes/EntryMarkerNode;)Lorg/graalvm/compiler/nodes/LoopBeginNode;
            astore 7 /* originalOSRLoop */
        start local 7 // org.graalvm.compiler.nodes.LoopBeginNode originalOSRLoop
         9: .line 123
            aload 6 /* originalOSRNode */
            invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.osrWithLocks:(Lorg/graalvm/compiler/nodes/EntryMarkerNode;)Z
            istore 8 /* currentOSRWithLocks */
        start local 8 // boolean currentOSRWithLocks
        10: .line 125
            aload 7 /* originalOSRLoop */
            ifnonnull 12
        11: .line 131
            new org.graalvm.compiler.core.common.PermanentBailoutException
            dup
            ldc "OSR compilation without OSR entry loop."
            invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 134
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext top int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int
      StackMap stack:
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.supportOSRWithLocks:(Lorg/graalvm/compiler/options/OptionValues;)Z
            ifne 14
            iload 8 /* currentOSRWithLocks */
            ifeq 14
        13: .line 135
            new org.graalvm.compiler.core.common.PermanentBailoutException
            dup
            ldc "OSR with locks disabled."
            invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 139
      StackMap locals:
      StackMap stack:
            aload 1 /* graph */
            invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.getEntryMarker:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            astore 3 /* osr */
        start local 3 // org.graalvm.compiler.nodes.EntryMarkerNode osr
        15: .line 140
            new org.graalvm.compiler.loop.LoopsData
            dup
            aload 1 /* graph */
            invokespecial org.graalvm.compiler.loop.LoopsData.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
            astore 9 /* loops */
        start local 9 // org.graalvm.compiler.loop.LoopsData loops
        16: .line 142
            aload 9 /* loops */
            invokevirtual org.graalvm.compiler.loop.LoopsData.getCFG:()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getNodeToBlock:()Lorg/graalvm/compiler/graph/NodeMap;
            aload 3 /* osr */
            invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getLoop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            astore 10 /* l */
        start local 10 // org.graalvm.compiler.core.common.cfg.Loop l
        17: .line 143
            aload 10 /* l */
            ifnonnull 19
        18: .line 144
            goto 34
        19: .line 147
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.core.common.cfg.Loop
      StackMap stack:
            iinc 5 /* iterations */ 1
        20: .line 148
            iload 4 /* maxIterations */
            iconst_m1
            if_icmpne 23
        21: .line 149
            aload 10 /* l */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getDepth:()I
            istore 4 /* maxIterations */
        22: .line 150
            goto 26
      StackMap locals:
      StackMap stack:
        23: iload 5 /* iterations */
            iload 4 /* maxIterations */
            if_icmple 26
        24: .line 151
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        25: .line 155
      StackMap locals:
      StackMap stack:
            aload 10 /* l */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            astore 10 /* l */
        26: .line 154
      StackMap locals:
      StackMap stack:
            aload 10 /* l */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            ifnonnull 25
        27: .line 158
            aload 9 /* loops */
            aload 10 /* l */
            invokevirtual org.graalvm.compiler.loop.LoopsData.loop:(Lorg/graalvm/compiler/core/common/cfg/Loop;)Lorg/graalvm/compiler/loop/LoopEx;
            astore 11 /* loop */
        start local 11 // org.graalvm.compiler.loop.LoopEx loop
        28: .line 159
            aload 11 /* loop */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.markOsrLoop:()V
        29: .line 160
            aload 11 /* loop */
            invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.peel:(Lorg/graalvm/compiler/loop/LoopEx;)V
        30: .line 162
            aload 3 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.prepareDelete:()V
        31: .line 163
            aload 3 /* osr */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        32: .line 164
            aload 2 /* debug */
            iconst_4
            aload 1 /* graph */
            ldc "OnStackReplacement loop peeling result"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        end local 11 // org.graalvm.compiler.loop.LoopEx loop
        end local 10 // org.graalvm.compiler.core.common.cfg.Loop l
        end local 9 // org.graalvm.compiler.loop.LoopsData loops
        33: .line 165
            goto 14
        34: .line 167
      StackMap locals:
      StackMap stack:
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            astore 9 /* start */
        start local 9 // org.graalvm.compiler.nodes.StartNode start
        35: .line 168
            aload 3 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 10 /* osrState */
        start local 10 // org.graalvm.compiler.nodes.FrameState osrState
        36: .line 170
            aconst_null
            astore 12
            aconst_null
            astore 13
        37: aload 3 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 14 /* context */
        start local 14 // org.graalvm.compiler.debug.DebugCloseable context
        38: .line 171
            aload 3 /* osr */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        39: .line 172
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.extended.OSRStartNode
            dup
            invokespecial org.graalvm.compiler.nodes.extended.OSRStartNode.<init>:()V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.OSRStartNode
            astore 11 /* osrStart */
        start local 11 // org.graalvm.compiler.nodes.extended.OSRStartNode osrStart
        40: .line 173
            aload 3 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 15 /* next */
        start local 15 // org.graalvm.compiler.nodes.FixedNode next
        41: .line 174
            aload 3 /* osr */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        42: .line 175
            aload 11 /* osrStart */
            aload 15 /* next */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        43: .line 176
            aload 1 /* graph */
            aload 11 /* osrStart */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setStart:(Lorg/graalvm/compiler/nodes/StartNode;)V
        44: .line 177
            aload 11 /* osrStart */
            aload 10 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        45: .line 179
            aload 2 /* debug */
            iconst_4
            aload 1 /* graph */
            ldc "OnStackReplacement after setting OSR start"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        46: .line 180
            aload 10 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
            istore 16 /* localsSize */
        start local 16 // int localsSize
        47: .line 181
            aload 10 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.locksSize:()I
            istore 17 /* locksSize */
        start local 17 // int locksSize
        48: .line 183
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        49: goto 74
        50: .line 185
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.FixedNode int int int
      StackMap stack:
            iload 18 /* i */
            iload 16 /* localsSize */
            if_icmplt 53
        51: .line 186
            aload 10 /* osrState */
            iload 18 /* i */
            iload 16 /* localsSize */
            isub
            invokevirtual org.graalvm.compiler.nodes.FrameState.lockAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 19 /* value */
        start local 19 // org.graalvm.compiler.nodes.ValueNode value
        52: .line 187
            goto 54
        end local 19 // org.graalvm.compiler.nodes.ValueNode value
        53: .line 188
      StackMap locals:
      StackMap stack:
            aload 10 /* osrState */
            iload 18 /* i */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 19 /* value */
        start local 19 // org.graalvm.compiler.nodes.ValueNode value
        54: .line 190
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 19 /* value */
            instanceof org.graalvm.compiler.nodes.EntryProxyNode
            ifeq 72
        55: .line 191
            aload 19 /* value */
            checkcast org.graalvm.compiler.nodes.EntryProxyNode
            astore 20 /* proxy */
        start local 20 // org.graalvm.compiler.nodes.EntryProxyNode proxy
        56: .line 197
            aload 20 /* proxy */
            invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 21 /* narrowedStamp */
        start local 21 // org.graalvm.compiler.core.common.type.Stamp narrowedStamp
        57: .line 198
            aload 20 /* proxy */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.unrestricted:()Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 22 /* unrestrictedStamp */
        start local 22 // org.graalvm.compiler.core.common.type.Stamp unrestrictedStamp
        58: .line 200
            iload 18 /* i */
            iload 16 /* localsSize */
            if_icmplt 61
        59: .line 201
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.extended.OSRLockNode
            dup
            iload 18 /* i */
            iload 16 /* localsSize */
            isub
            aload 22 /* unrestrictedStamp */
            invokespecial org.graalvm.compiler.nodes.extended.OSRLockNode.<init>:(ILorg/graalvm/compiler/core/common/type/Stamp;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 23 /* osrLocal */
        start local 23 // org.graalvm.compiler.nodes.ValueNode osrLocal
        60: .line 202
            goto 62
        end local 23 // org.graalvm.compiler.nodes.ValueNode osrLocal
        61: .line 203
      StackMap locals: org.graalvm.compiler.nodes.EntryProxyNode org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp
      StackMap stack:
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.extended.OSRLocalNode
            dup
            iload 18 /* i */
            aload 22 /* unrestrictedStamp */
            invokespecial org.graalvm.compiler.nodes.extended.OSRLocalNode.<init>:(ILorg/graalvm/compiler/core/common/type/Stamp;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 23 /* osrLocal */
        start local 23 // org.graalvm.compiler.nodes.ValueNode osrLocal
        62: .line 206
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.OSR_LOCAL_SPECULATIONS:Lorg/graalvm/compiler/serviceprovider/SpeculationReasonGroup;
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* osrState */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 21 /* narrowedStamp */
            aastore
            dup
            iconst_2
            iload 18 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.serviceprovider.SpeculationReasonGroup.createSpeculationReason:([Ljava/lang/Object;)Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
            astore 24 /* reason */
        start local 24 // jdk.vm.ci.meta.SpeculationLog$SpeculationReason reason
        63: .line 207
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getSpeculationLog:()Ljdk/vm/ci/meta/SpeculationLog;
            aload 24 /* reason */
            invokeinterface jdk.vm.ci.meta.SpeculationLog.maySpeculate:(Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;)Z
            ifeq 70
            aload 23 /* osrLocal */
            instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
            ifeq 70
            aload 19 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.equals:(Ljava/lang/Object;)Z
            ifeq 70
            aload 21 /* narrowedStamp */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isUnrestricted:()Z
            ifne 70
        64: .line 209
            aload 1 /* graph */
            aload 21 /* narrowedStamp */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            aload 23 /* osrLocal */
            aconst_null
            aconst_null
            invokestatic org.graalvm.compiler.nodes.java.InstanceOfNode.createHelper:(Lorg/graalvm/compiler/core/common/type/ObjectStamp;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaTypeProfile;Lorg/graalvm/compiler/nodes/extended/AnchoringNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            astore 25 /* check */
        start local 25 // org.graalvm.compiler.nodes.LogicNode check
        65: .line 210
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getSpeculationLog:()Ljdk/vm/ci/meta/SpeculationLog;
            aload 24 /* reason */
            invokeinterface jdk.vm.ci.meta.SpeculationLog.speculate:(Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;)Ljdk/vm/ci/meta/SpeculationLog$Speculation;
            astore 26 /* constant */
        start local 26 // jdk.vm.ci.meta.SpeculationLog$Speculation constant
        66: .line 211
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.FixedGuardNode
            dup
            aload 25 /* check */
            getstatic jdk.vm.ci.meta.DeoptimizationReason.OptimizedTypeCheckViolated:Ljdk/vm/ci/meta/DeoptimizationReason;
            getstatic jdk.vm.ci.meta.DeoptimizationAction.InvalidateRecompile:Ljdk/vm/ci/meta/DeoptimizationAction;
            aload 26 /* constant */
            iconst_0
            invokespecial org.graalvm.compiler.nodes.FixedGuardNode.<init>:(Lorg/graalvm/compiler/nodes/LogicNode;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/SpeculationLog$Speculation;Z)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedGuardNode
            astore 27 /* guard */
        start local 27 // org.graalvm.compiler.nodes.FixedGuardNode guard
        67: .line 212
            aload 1 /* graph */
            aload 11 /* osrStart */
            aload 27 /* guard */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        68: .line 217
            aload 20 /* proxy */
            aload 23 /* osrLocal */
            aload 10 /* osrState */
            invokedynamic apply(Lorg/graalvm/compiler/nodes/FrameState;)Lorg/graalvm/compiler/graph/iterators/NodePredicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lorg/graalvm/compiler/graph/Node;)Z
                  org/graalvm/compiler/hotspot/phases/OnStackReplacementPhase.lambda$0(Lorg/graalvm/compiler/nodes/FrameState;Lorg/graalvm/compiler/graph/Node;)Z (6)
                  (Lorg/graalvm/compiler/graph/Node;)Z
            invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.replaceAtMatchingUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)V
        69: .line 218
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.PiNode
            dup
            aload 23 /* osrLocal */
            aload 21 /* narrowedStamp */
            aload 27 /* guard */
            invokespecial org.graalvm.compiler.nodes.PiNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 23 /* osrLocal */
        end local 27 // org.graalvm.compiler.nodes.FixedGuardNode guard
        end local 26 // jdk.vm.ci.meta.SpeculationLog$Speculation constant
        end local 25 // org.graalvm.compiler.nodes.LogicNode check
        70: .line 220
      StackMap locals: jdk.vm.ci.meta.SpeculationLog$SpeculationReason
      StackMap stack:
            aload 20 /* proxy */
            aload 23 /* osrLocal */
            invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 24 // jdk.vm.ci.meta.SpeculationLog$SpeculationReason reason
        end local 23 // org.graalvm.compiler.nodes.ValueNode osrLocal
        end local 22 // org.graalvm.compiler.core.common.type.Stamp unrestrictedStamp
        end local 21 // org.graalvm.compiler.core.common.type.Stamp narrowedStamp
        end local 20 // org.graalvm.compiler.nodes.EntryProxyNode proxy
        71: .line 221
            goto 73
        72: .line 222
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.FixedNode int int int org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
            ifne 73
            aload 19 /* value */
            ifnull 73
            aload 19 /* value */
            instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
            ifne 73
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 19 // org.graalvm.compiler.nodes.ValueNode value
        73: .line 183
      StackMap locals:
      StackMap stack:
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        74: iload 18 /* i */
            iload 16 /* localsSize */
            iload 17 /* locksSize */
            iadd
            if_icmplt 50
        end local 18 // int i
        75: .line 226
            aload 3 /* osr */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 11 /* osrStart */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
        76: .line 227
            aload 3 /* osr */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Anchor:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 11 /* osrStart */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
        end local 17 // int locksSize
        end local 16 // int localsSize
        end local 15 // org.graalvm.compiler.nodes.FixedNode next
        77: .line 228
            aload 14 /* context */
            ifnull 83
            aload 14 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 83
        end local 11 // org.graalvm.compiler.nodes.extended.OSRStartNode osrStart
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState top java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        78: astore 12
            aload 14 /* context */
            ifnull 79
            aload 14 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 14 // org.graalvm.compiler.debug.DebugCloseable context
      StackMap locals:
      StackMap stack:
        79: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        80: astore 13
            aload 12
            ifnonnull 81
            aload 13
            astore 12
            goto 82
      StackMap locals:
      StackMap stack:
        81: aload 12
            aload 13
            if_acmpeq 82
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        82: aload 12
            athrow
        start local 11 // org.graalvm.compiler.nodes.extended.OSRStartNode osrStart
        83: .line 229
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode
      StackMap stack:
            aload 2 /* debug */
            iconst_4
            aload 1 /* graph */
            ldc "OnStackReplacement after replacing entry proxies"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        84: .line 230
            aload 9 /* start */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        85: .line 231
            aload 2 /* debug */
            iconst_4
            aload 1 /* graph */
            ldc "OnStackReplacement result"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
        86: .line 232
            new org.graalvm.compiler.phases.common.DeadCodeEliminationPhase
            dup
            getstatic org.graalvm.compiler.phases.common.DeadCodeEliminationPhase$Optionality.Required:Lorg/graalvm/compiler/phases/common/DeadCodeEliminationPhase$Optionality;
            invokespecial org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.<init>:(Lorg/graalvm/compiler/phases/common/DeadCodeEliminationPhase$Optionality;)V
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
        87: .line 234
            iload 8 /* currentOSRWithLocks */
            ifeq 121
        88: .line 235
            getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.OsrWithLocksCount:Lorg/graalvm/compiler/debug/CounterKey;
            aload 2 /* debug */
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
        89: .line 236
            aconst_null
            astore 12
            aconst_null
            astore 13
        90: aload 11 /* osrStart */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 14 /* context */
        start local 14 // org.graalvm.compiler.debug.DebugCloseable context
        91: .line 237
            aload 10 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdCount:()I
            iconst_1
            isub
            istore 15 /* i */
        start local 15 // int i
        92: goto 107
        93: .line 238
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable int
      StackMap stack:
            aload 10 /* osrState */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdAt:(I)Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
            astore 16 /* id */
        start local 16 // org.graalvm.compiler.nodes.java.MonitorIdNode id
        94: .line 239
            aload 10 /* osrState */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.FrameState.lockAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 17 /* lockedObject */
        start local 17 // org.graalvm.compiler.nodes.ValueNode lockedObject
        95: .line 240
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode
            dup
            aload 17 /* lockedObject */
            aload 16 /* id */
            invokespecial org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/java/MonitorIdNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode
            astore 18 /* osrMonitorEnter */
        start local 18 // org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode osrMonitorEnter
        96: .line 241
            aload 16 /* id */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorIdNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 20
            goto 101
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable int org.graalvm.compiler.nodes.java.MonitorIdNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode top java.util.Iterator
      StackMap stack:
        97: aload 20
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 19 /* usage */
        start local 19 // org.graalvm.compiler.graph.Node usage
        98: .line 242
            aload 19 /* usage */
            instanceof org.graalvm.compiler.nodes.java.AccessMonitorNode
            ifeq 101
        99: .line 243
            aload 19 /* usage */
            checkcast org.graalvm.compiler.nodes.java.AccessMonitorNode
            astore 21 /* access */
        start local 21 // org.graalvm.compiler.nodes.java.AccessMonitorNode access
       100: .line 244
            aload 21 /* access */
            aload 17 /* lockedObject */
            invokevirtual org.graalvm.compiler.nodes.java.AccessMonitorNode.setObject:(Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 21 // org.graalvm.compiler.nodes.java.AccessMonitorNode access
        end local 19 // org.graalvm.compiler.graph.Node usage
       101: .line 241
      StackMap locals:
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 97
       102: .line 247
            aload 11 /* osrStart */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 19 /* oldNext */
        start local 19 // org.graalvm.compiler.nodes.FixedNode oldNext
       103: .line 248
            aload 19 /* oldNext */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
       104: .line 249
            aload 18 /* osrMonitorEnter */
            aload 19 /* oldNext */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
       105: .line 250
            aload 11 /* osrStart */
            aload 18 /* osrMonitorEnter */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        end local 19 // org.graalvm.compiler.nodes.FixedNode oldNext
        end local 18 // org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode osrMonitorEnter
        end local 17 // org.graalvm.compiler.nodes.ValueNode lockedObject
        end local 16 // org.graalvm.compiler.nodes.java.MonitorIdNode id
       106: .line 237
            iinc 15 /* i */ -1
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable int
      StackMap stack:
       107: iload 15 /* i */
            ifge 93
        end local 15 // int i
       108: .line 252
            aload 14 /* context */
            ifnull 114
            aload 14 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 114
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
       109: astore 12
            aload 14 /* context */
            ifnull 110
            aload 14 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 14 // org.graalvm.compiler.debug.DebugCloseable context
      StackMap locals:
      StackMap stack:
       110: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       111: astore 13
            aload 12
            ifnonnull 112
            aload 13
            astore 12
            goto 113
      StackMap locals:
      StackMap stack:
       112: aload 12
            aload 13
            if_acmpeq 113
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       113: aload 12
            athrow
       114: .line 254
      StackMap locals:
      StackMap stack:
            aload 2 /* debug */
            iconst_4
            aload 1 /* graph */
            ldc "After inserting OSR monitor enters"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
       115: .line 263
            aload 1 /* graph */
            getstatic org.graalvm.compiler.nodes.java.MonitorExitNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 13
            goto 120
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode top java.util.Iterator
      StackMap stack:
       116: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MonitorExitNode
            astore 12 /* exit */
        start local 12 // org.graalvm.compiler.nodes.java.MonitorExitNode exit
       117: .line 264
            aload 12 /* exit */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorExitNode.getMonitorId:()Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
            astore 14 /* id */
        start local 14 // org.graalvm.compiler.nodes.java.MonitorIdNode id
       118: .line 265
            aload 14 /* id */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorIdNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/java/MonitorEnterNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            iconst_1
            if_icmpeq 120
       119: .line 266
            new org.graalvm.compiler.core.common.PermanentBailoutException
            dup
            ldc "Unbalanced monitor enter-exit in OSR compilation with locks. Object is locked before the loop but released inside the loop."
            invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // org.graalvm.compiler.nodes.java.MonitorIdNode id
        end local 12 // org.graalvm.compiler.nodes.java.MonitorExitNode exit
       120: .line 263
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 116
       121: .line 270
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode
      StackMap stack:
            aload 2 /* debug */
            iconst_4
            aload 1 /* graph */
            ldc "OnStackReplacement result"
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
       122: .line 271
            new org.graalvm.compiler.phases.common.DeadCodeEliminationPhase
            dup
            getstatic org.graalvm.compiler.phases.common.DeadCodeEliminationPhase$Optionality.Required:Lorg/graalvm/compiler/phases/common/DeadCodeEliminationPhase$Optionality;
            invokespecial org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.<init>:(Lorg/graalvm/compiler/phases/common/DeadCodeEliminationPhase$Optionality;)V
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
       123: .line 275
            getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
            ifne 124
            aload 1 /* graph */
            getstatic org.graalvm.compiler.nodes.ParameterNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            ifeq 124
            new java.lang.AssertionError
            dup
            ldc "OSR Compilation contains references to parameters."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
       124: .line 276
      StackMap locals:
      StackMap stack:
            return
        end local 11 // org.graalvm.compiler.nodes.extended.OSRStartNode osrStart
        end local 10 // org.graalvm.compiler.nodes.FrameState osrState
        end local 9 // org.graalvm.compiler.nodes.StartNode start
        end local 8 // boolean currentOSRWithLocks
        end local 7 // org.graalvm.compiler.nodes.LoopBeginNode originalOSRLoop
        end local 6 // org.graalvm.compiler.nodes.EntryMarkerNode originalOSRNode
        end local 5 // int iterations
        end local 4 // int maxIterations
        end local 3 // org.graalvm.compiler.nodes.EntryMarkerNode osr
        end local 2 // org.graalvm.compiler.debug.DebugContext debug
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  125     0                 this  Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase;
            0  125     1                graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1  125     2                debug  Lorg/graalvm/compiler/debug/DebugContext;
           15  125     3                  osr  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            6  125     4        maxIterations  I
            7  125     5           iterations  I
            8  125     6      originalOSRNode  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            9  125     7      originalOSRLoop  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           10  125     8  currentOSRWithLocks  Z
           16   33     9                loops  Lorg/graalvm/compiler/loop/LoopsData;
           17   33    10                    l  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
           28   33    11                 loop  Lorg/graalvm/compiler/loop/LoopEx;
           35  125     9                start  Lorg/graalvm/compiler/nodes/StartNode;
           36  125    10             osrState  Lorg/graalvm/compiler/nodes/FrameState;
           40   78    11             osrStart  Lorg/graalvm/compiler/nodes/extended/OSRStartNode;
           83  125    11             osrStart  Lorg/graalvm/compiler/nodes/extended/OSRStartNode;
           38   79    14              context  Lorg/graalvm/compiler/debug/DebugCloseable;
           41   77    15                 next  Lorg/graalvm/compiler/nodes/FixedNode;
           47   77    16           localsSize  I
           48   77    17            locksSize  I
           49   75    18                    i  I
           52   53    19                value  Lorg/graalvm/compiler/nodes/ValueNode;
           54   73    19                value  Lorg/graalvm/compiler/nodes/ValueNode;
           56   71    20                proxy  Lorg/graalvm/compiler/nodes/EntryProxyNode;
           57   71    21        narrowedStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           58   71    22    unrestrictedStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           60   61    23             osrLocal  Lorg/graalvm/compiler/nodes/ValueNode;
           62   71    23             osrLocal  Lorg/graalvm/compiler/nodes/ValueNode;
           63   71    24               reason  Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
           65   70    25                check  Lorg/graalvm/compiler/nodes/LogicNode;
           66   70    26             constant  Ljdk/vm/ci/meta/SpeculationLog$Speculation;
           67   70    27                guard  Lorg/graalvm/compiler/nodes/FixedGuardNode;
           91  110    14              context  Lorg/graalvm/compiler/debug/DebugCloseable;
           92  108    15                    i  I
           94  106    16                   id  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
           95  106    17         lockedObject  Lorg/graalvm/compiler/nodes/ValueNode;
           96  106    18      osrMonitorEnter  Lorg/graalvm/compiler/nodes/extended/OSRMonitorEnterNode;
           98  101    19                usage  Lorg/graalvm/compiler/graph/Node;
          100  101    21               access  Lorg/graalvm/compiler/nodes/java/AccessMonitorNode;
          103  106    19              oldNext  Lorg/graalvm/compiler/nodes/FixedNode;
          117  120    12                 exit  Lorg/graalvm/compiler/nodes/java/MonitorExitNode;
          118  120    14                   id  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
      Exception table:
        from    to  target  type
          38    77      78  any
          37    80      80  any
          91   108     109  any
          90   111     111  any
    MethodParameters:
       Name  Flags
      graph  

  private static org.graalvm.compiler.nodes.EntryMarkerNode getEntryMarker(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/EntryMarkerNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 279
            aload 0 /* graph */
            getstatic org.graalvm.compiler.nodes.EntryMarkerNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            astore 1 /* osrNodes */
        start local 1 // org.graalvm.compiler.graph.iterators.NodeIterable osrNodes
         1: .line 280
            aload 1 /* osrNodes */
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.EntryMarkerNode
            astore 2 /* osr */
        start local 2 // org.graalvm.compiler.nodes.EntryMarkerNode osr
         2: .line 281
            aload 2 /* osr */
            ifnonnull 4
         3: .line 282
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc "No OnStackReplacementNode generated"
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 284
      StackMap locals: org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.nodes.EntryMarkerNode
      StackMap stack:
            aload 1 /* osrNodes */
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            iconst_1
            if_icmple 6
         5: .line 285
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc "Multiple OnStackReplacementNodes generated"
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 287
      StackMap locals:
      StackMap stack:
            aload 2 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
            ifeq 8
         7: .line 288
            new org.graalvm.compiler.core.common.PermanentBailoutException
            dup
            ldc "OSR with stack entries not supported: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            getstatic org.graalvm.compiler.nodeinfo.Verbosity.Debugger:Lorg/graalvm/compiler/nodeinfo/Verbosity;
            invokevirtual org.graalvm.compiler.nodes.FrameState.toString:(Lorg/graalvm/compiler/nodeinfo/Verbosity;)Ljava/lang/String;
            aastore
            invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         8: .line 290
      StackMap locals:
      StackMap stack:
            aload 2 /* osr */
            areturn
        end local 2 // org.graalvm.compiler.nodes.EntryMarkerNode osr
        end local 1 // org.graalvm.compiler.graph.iterators.NodeIterable osrNodes
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0     graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1    9     1  osrNodes  Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/nodes/EntryMarkerNode;>;
            2    9     2       osr  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
    MethodParameters:
       Name  Flags
      graph  

  private static org.graalvm.compiler.nodes.LoopBeginNode osrLoop(org.graalvm.compiler.nodes.EntryMarkerNode);
    descriptor: (Lorg/graalvm/compiler/nodes/EntryMarkerNode;)Lorg/graalvm/compiler/nodes/LoopBeginNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.nodes.EntryMarkerNode osr
         0: .line 295
            new org.graalvm.compiler.loop.LoopsData
            dup
            aload 0 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokespecial org.graalvm.compiler.loop.LoopsData.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
            astore 1 /* loops */
        start local 1 // org.graalvm.compiler.loop.LoopsData loops
         1: .line 296
            aload 1 /* loops */
            invokevirtual org.graalvm.compiler.loop.LoopsData.getCFG:()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.getNodeToBlock:()Lorg/graalvm/compiler/graph/NodeMap;
            aload 0 /* osr */
            invokevirtual org.graalvm.compiler.graph.NodeMap.get:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getLoop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            astore 2 /* l */
        start local 2 // org.graalvm.compiler.core.common.cfg.Loop l
         2: .line 297
            aload 2 /* l */
            ifnonnull 4
         3: .line 298
            aconst_null
            areturn
         4: .line 300
      StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.core.common.cfg.Loop
      StackMap stack:
            aload 2 /* l */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            checkcast org.graalvm.compiler.nodes.LoopBeginNode
            areturn
        end local 2 // org.graalvm.compiler.core.common.cfg.Loop l
        end local 1 // org.graalvm.compiler.loop.LoopsData loops
        end local 0 // org.graalvm.compiler.nodes.EntryMarkerNode osr
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0    osr  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            1    5     1  loops  Lorg/graalvm/compiler/loop/LoopsData;
            2    5     2      l  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
    MethodParameters:
      Name  Flags
      osr   

  private static boolean osrWithLocks(org.graalvm.compiler.nodes.EntryMarkerNode);
    descriptor: (Lorg/graalvm/compiler/nodes/EntryMarkerNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.EntryMarkerNode osr
         0: .line 304
            aload 0 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            invokevirtual org.graalvm.compiler.nodes.FrameState.locksSize:()I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.nodes.EntryMarkerNode osr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   osr  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
    MethodParameters:
      Name  Flags
      osr   

  public float codeSizeIncrease();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase this
         0: .line 309
            ldc 5.0
            freturn
        end local 0 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase;

  private static boolean lambda$0(org.graalvm.compiler.nodes.FrameState, org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/nodes/FrameState;Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.compiler.graph.Node n
         0: .line 217
            aload 1 /* n */
            aload 0
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.compiler.graph.Node n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     n  Lorg/graalvm/compiler/graph/Node;
}
SourceFile: "OnStackReplacementPhase.java"
NestMembers:
  org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$Options
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Speculation = jdk.vm.ci.meta.SpeculationLog$Speculation of jdk.vm.ci.meta.SpeculationLog
  public abstract SpeculationReason = jdk.vm.ci.meta.SpeculationLog$SpeculationReason of jdk.vm.ci.meta.SpeculationLog
  public Options = org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$Options of org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase
  public final Optionality = org.graalvm.compiler.phases.common.DeadCodeEliminationPhase$Optionality of org.graalvm.compiler.phases.common.DeadCodeEliminationPhase