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

  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=1, locals=0, args_size=0
         0: .line 79
            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 93
            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;
            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 79
            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 96
            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=25, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 101
            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 102
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getEntryBCI:()I
            iconst_m1
            if_icmpne 4
         2: .line 105
            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 106
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            return
         4: .line 108
      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 111
            iconst_m1
            istore 4 /* maxIterations */
        start local 4 // int maxIterations
         6: .line 112
            iconst_0
            istore 5 /* iterations */
        start local 5 // int iterations
         7: .line 114
            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 115
            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 116
            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 118
            aload 7 /* originalOSRLoop */
            ifnonnull 12
        11: .line 124
            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 127
      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 128
            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 132
      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 133
            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 135
            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 136
            aload 10 /* l */
            ifnonnull 19
        18: .line 137
            goto 37
        19: .line 140
      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 141
            iload 4 /* maxIterations */
            iconst_m1
            if_icmpne 23
        21: .line 142
            aload 10 /* l */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getDepth:()I
            istore 4 /* maxIterations */
        22: .line 143
            goto 26
      StackMap locals:
      StackMap stack:
        23: iload 5 /* iterations */
            iload 4 /* maxIterations */
            if_icmple 26
        24: .line 144
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        25: .line 148
      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 147
      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 151
            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;
            invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.peel:(Lorg/graalvm/compiler/loop/LoopEx;)V
        28: .line 152
            aload 3 /* osr */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 3 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedNode
            invokestatic org.graalvm.compiler.nodes.AbstractBeginNode.prevBegin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
        29: .line 153
            aload 3 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 33
      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 top java.util.Iterator
      StackMap stack:
        30: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 11 /* usage */
        start local 11 // org.graalvm.compiler.graph.Node usage
        31: .line 154
            aload 11 /* usage */
            checkcast org.graalvm.compiler.nodes.EntryProxyNode
            astore 13 /* proxy */
        start local 13 // org.graalvm.compiler.nodes.EntryProxyNode proxy
        32: .line 155
            aload 13 /* proxy */
            aload 13 /* proxy */
            invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.value:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 13 // org.graalvm.compiler.nodes.EntryProxyNode proxy
        end local 11 // org.graalvm.compiler.graph.Node usage
        33: .line 153
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        34: .line 157
            aload 3 /* osr */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        35: .line 158
            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 10 // org.graalvm.compiler.core.common.cfg.Loop l
        end local 9 // org.graalvm.compiler.loop.LoopsData loops
        36: .line 159
            goto 14
        37: .line 161
      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
      StackMap stack:
            aload 3 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
            astore 9 /* osrState */
        start local 9 // org.graalvm.compiler.nodes.FrameState osrState
        38: .line 162
            aload 3 /* osr */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        39: .line 163
            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 10 /* osrStart */
        start local 10 // org.graalvm.compiler.nodes.extended.OSRStartNode osrStart
        40: .line 164
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
            astore 11 /* start */
        start local 11 // org.graalvm.compiler.nodes.StartNode start
        41: .line 165
            aload 3 /* osr */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 12 /* next */
        start local 12 // org.graalvm.compiler.nodes.FixedNode next
        42: .line 166
            aload 3 /* osr */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        43: .line 167
            aload 10 /* osrStart */
            aload 12 /* next */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        44: .line 168
            aload 1 /* graph */
            aload 10 /* osrStart */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setStart:(Lorg/graalvm/compiler/nodes/StartNode;)V
        45: .line 169
            aload 10 /* osrStart */
            aload 9 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        46: .line 171
            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
        47: .line 172
            aload 9 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
            istore 13 /* localsSize */
        start local 13 // int localsSize
        48: .line 173
            aload 9 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.locksSize:()I
            istore 14 /* locksSize */
        start local 14 // int locksSize
        49: .line 175
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        50: goto 76
        51: .line 176
      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.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode int int int
      StackMap stack:
            aconst_null
            astore 16 /* value */
        start local 16 // org.graalvm.compiler.nodes.ValueNode value
        52: .line 177
            iload 15 /* i */
            iload 13 /* localsSize */
            if_icmplt 55
        53: .line 178
            aload 9 /* osrState */
            iload 15 /* i */
            iload 13 /* localsSize */
            isub
            invokevirtual org.graalvm.compiler.nodes.FrameState.lockAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 16 /* value */
        54: .line 179
            goto 56
        55: .line 180
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 9 /* osrState */
            iload 15 /* i */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 16 /* value */
        56: .line 182
      StackMap locals:
      StackMap stack:
            aload 16 /* value */
            instanceof org.graalvm.compiler.nodes.EntryProxyNode
            ifeq 74
        57: .line 183
            aload 16 /* value */
            checkcast org.graalvm.compiler.nodes.EntryProxyNode
            astore 17 /* proxy */
        start local 17 // org.graalvm.compiler.nodes.EntryProxyNode proxy
        58: .line 189
            aload 17 /* 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 18 /* narrowedStamp */
        start local 18 // org.graalvm.compiler.core.common.type.Stamp narrowedStamp
        59: .line 190
            aload 17 /* 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 19 /* unrestrictedStamp */
        start local 19 // org.graalvm.compiler.core.common.type.Stamp unrestrictedStamp
        60: .line 192
            iload 15 /* i */
            iload 13 /* localsSize */
            if_icmplt 63
        61: .line 193
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.extended.OSRLockNode
            dup
            iload 15 /* i */
            iload 13 /* localsSize */
            isub
            aload 19 /* 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 20 /* osrLocal */
        start local 20 // org.graalvm.compiler.nodes.ValueNode osrLocal
        62: .line 194
            goto 64
        end local 20 // org.graalvm.compiler.nodes.ValueNode osrLocal
        63: .line 195
      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 15 /* i */
            aload 19 /* 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 20 /* osrLocal */
        start local 20 // org.graalvm.compiler.nodes.ValueNode osrLocal
        64: .line 198
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            new org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason
            dup
            aload 9 /* osrState */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            aload 18 /* narrowedStamp */
            iload 15 /* i */
            invokespecial org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason.<init>:(ILorg/graalvm/compiler/core/common/type/Stamp;I)V
            astore 21 /* reason */
        start local 21 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason reason
        65: .line 199
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getSpeculationLog:()Ljdk/vm/ci/meta/SpeculationLog;
            aload 21 /* reason */
            invokeinterface jdk.vm.ci.meta.SpeculationLog.maySpeculate:(Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;)Z
            ifeq 72
            aload 20 /* osrLocal */
            instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
            ifeq 72
            aload 16 /* 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 72
            aload 18 /* narrowedStamp */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isUnrestricted:()Z
            ifne 72
        66: .line 201
            aload 1 /* graph */
            aload 18 /* narrowedStamp */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            aload 20 /* 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 22 /* check */
        start local 22 // org.graalvm.compiler.nodes.LogicNode check
        67: .line 202
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getSpeculationLog:()Ljdk/vm/ci/meta/SpeculationLog;
            aload 21 /* reason */
            invokeinterface jdk.vm.ci.meta.SpeculationLog.speculate:(Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;)Ljdk/vm/ci/meta/JavaConstant;
            astore 23 /* constant */
        start local 23 // jdk.vm.ci.meta.JavaConstant constant
        68: .line 203
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.FixedGuardNode
            dup
            aload 22 /* 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 23 /* 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/JavaConstant;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 24 /* guard */
        start local 24 // org.graalvm.compiler.nodes.FixedGuardNode guard
        69: .line 204
            aload 1 /* graph */
            aload 10 /* osrStart */
            aload 24 /* guard */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
        70: .line 209
            aload 17 /* proxy */
            aload 20 /* osrLocal */
            aload 9 /* 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
        71: .line 210
            aload 1 /* graph */
            new org.graalvm.compiler.nodes.PiNode
            dup
            aload 20 /* osrLocal */
            aload 18 /* narrowedStamp */
            aload 24 /* 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 20 /* osrLocal */
        end local 24 // org.graalvm.compiler.nodes.FixedGuardNode guard
        end local 23 // jdk.vm.ci.meta.JavaConstant constant
        end local 22 // org.graalvm.compiler.nodes.LogicNode check
        72: .line 212
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason
      StackMap stack:
            aload 17 /* proxy */
            aload 20 /* osrLocal */
            invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 21 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason reason
        end local 20 // org.graalvm.compiler.nodes.ValueNode osrLocal
        end local 19 // org.graalvm.compiler.core.common.type.Stamp unrestrictedStamp
        end local 18 // org.graalvm.compiler.core.common.type.Stamp narrowedStamp
        end local 17 // org.graalvm.compiler.nodes.EntryProxyNode proxy
        73: .line 213
            goto 75
        74: .line 214
      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.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode org.graalvm.compiler.nodes.StartNode 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 75
            aload 16 /* value */
            ifnull 75
            aload 16 /* value */
            instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
            ifne 75
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 16 // org.graalvm.compiler.nodes.ValueNode value
        75: .line 175
      StackMap locals:
      StackMap stack:
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        76: iload 15 /* i */
            iload 13 /* localsSize */
            iload 14 /* locksSize */
            iadd
            if_icmplt 51
        end local 15 // int i
        77: .line 218
            aload 3 /* osr */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 10 /* osrStart */
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
        78: .line 219
            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
        79: .line 220
            aload 11 /* start */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        80: .line 221
            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
        81: .line 222
            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
        82: .line 224
            iload 8 /* currentOSRWithLocks */
            ifeq 108
        83: .line 225
            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
        84: .line 226
            aload 9 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdCount:()I
            iconst_1
            isub
            istore 15 /* i */
        start local 15 // int i
        85: goto 100
        86: .line 227
      StackMap locals:
      StackMap stack:
            aload 9 /* 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
        87: .line 228
            aload 9 /* 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
        88: .line 229
            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
        89: .line 230
            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 94
      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.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode int int int org.graalvm.compiler.nodes.java.MonitorIdNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode top java.util.Iterator
      StackMap stack:
        90: 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
        91: .line 231
            aload 19 /* usage */
            instanceof org.graalvm.compiler.nodes.java.AccessMonitorNode
            ifeq 94
        92: .line 232
            aload 19 /* usage */
            checkcast org.graalvm.compiler.nodes.java.AccessMonitorNode
            astore 21 /* access */
        start local 21 // org.graalvm.compiler.nodes.java.AccessMonitorNode access
        93: .line 233
            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
        94: .line 230
      StackMap locals:
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 90
        95: .line 236
            aload 10 /* 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
        96: .line 237
            aload 19 /* oldNext */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        97: .line 238
            aload 18 /* osrMonitorEnter */
            aload 19 /* oldNext */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        98: .line 239
            aload 10 /* 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
        99: .line 226
            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.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode int int int
      StackMap stack:
       100: iload 15 /* i */
            ifge 86
        end local 15 // int i
       101: .line 241
            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
       102: .line 250
            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 16
            goto 107
      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.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode int int top java.util.Iterator
      StackMap stack:
       103: aload 16
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.java.MonitorExitNode
            astore 15 /* exit */
        start local 15 // org.graalvm.compiler.nodes.java.MonitorExitNode exit
       104: .line 251
            aload 15 /* exit */
            invokevirtual org.graalvm.compiler.nodes.java.MonitorExitNode.getMonitorId:()Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
            astore 17 /* id */
        start local 17 // org.graalvm.compiler.nodes.java.MonitorIdNode id
       105: .line 252
            aload 17 /* 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 107
       106: .line 253
            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 17 // org.graalvm.compiler.nodes.java.MonitorIdNode id
        end local 15 // org.graalvm.compiler.nodes.java.MonitorExitNode exit
       107: .line 250
      StackMap locals:
      StackMap stack:
            aload 16
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 103
       108: .line 257
      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.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FixedNode int int
      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
       109: .line 258
            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
       110: .line 262
            getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
            ifne 111
            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 111
            new java.lang.AssertionError
            dup
            ldc "OSR Compilation contains references to parameters."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
       111: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 14 // int locksSize
        end local 13 // int localsSize
        end local 12 // org.graalvm.compiler.nodes.FixedNode next
        end local 11 // org.graalvm.compiler.nodes.StartNode start
        end local 10 // org.graalvm.compiler.nodes.extended.OSRStartNode osrStart
        end local 9 // org.graalvm.compiler.nodes.FrameState osrState
        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  112     0                 this  Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase;
            0  112     1                graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1  112     2                debug  Lorg/graalvm/compiler/debug/DebugContext;
           15  112     3                  osr  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            6  112     4        maxIterations  I
            7  112     5           iterations  I
            8  112     6      originalOSRNode  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            9  112     7      originalOSRLoop  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           10  112     8  currentOSRWithLocks  Z
           16   36     9                loops  Lorg/graalvm/compiler/loop/LoopsData;
           17   36    10                    l  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
           31   33    11                usage  Lorg/graalvm/compiler/graph/Node;
           32   33    13                proxy  Lorg/graalvm/compiler/nodes/EntryProxyNode;
           38  112     9             osrState  Lorg/graalvm/compiler/nodes/FrameState;
           40  112    10             osrStart  Lorg/graalvm/compiler/nodes/extended/OSRStartNode;
           41  112    11                start  Lorg/graalvm/compiler/nodes/StartNode;
           42  112    12                 next  Lorg/graalvm/compiler/nodes/FixedNode;
           48  112    13           localsSize  I
           49  112    14            locksSize  I
           50   77    15                    i  I
           52   75    16                value  Lorg/graalvm/compiler/nodes/ValueNode;
           58   73    17                proxy  Lorg/graalvm/compiler/nodes/EntryProxyNode;
           59   73    18        narrowedStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           60   73    19    unrestrictedStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           62   63    20             osrLocal  Lorg/graalvm/compiler/nodes/ValueNode;
           64   73    20             osrLocal  Lorg/graalvm/compiler/nodes/ValueNode;
           65   73    21               reason  Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase$OSRLocalSpeculationReason;
           67   72    22                check  Lorg/graalvm/compiler/nodes/LogicNode;
           68   72    23             constant  Ljdk/vm/ci/meta/JavaConstant;
           69   72    24                guard  Lorg/graalvm/compiler/nodes/FixedGuardNode;
           85  101    15                    i  I
           87   99    16                   id  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
           88   99    17         lockedObject  Lorg/graalvm/compiler/nodes/ValueNode;
           89   99    18      osrMonitorEnter  Lorg/graalvm/compiler/nodes/extended/OSRMonitorEnterNode;
           91   94    19                usage  Lorg/graalvm/compiler/graph/Node;
           93   94    21               access  Lorg/graalvm/compiler/nodes/java/AccessMonitorNode;
           96   99    19              oldNext  Lorg/graalvm/compiler/nodes/FixedNode;
          104  107    15                 exit  Lorg/graalvm/compiler/nodes/java/MonitorExitNode;
          105  107    17                   id  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
    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 266
            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 267
            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 268
            aload 2 /* osr */
            ifnonnull 4
         3: .line 269
            new org.graalvm.compiler.core.common.PermanentBailoutException
            dup
            ldc "No OnStackReplacementNode generated"
            invokespecial org.graalvm.compiler.core.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 271
      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 272
            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 274
      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 275
            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 277
      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 282
            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 283
            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 284
            aload 2 /* l */
            ifnonnull 4
         3: .line 285
            aconst_null
            areturn
         4: .line 287
      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 291
            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 296
            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 209
            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$OSRLocalSpeculationReason  org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$Options
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract SpeculationReason = jdk.vm.ci.meta.SpeculationLog$SpeculationReason of jdk.vm.ci.meta.SpeculationLog
  private OSRLocalSpeculationReason = org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason of org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase
  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