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 82
            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 96
            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 82
            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 99
            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 105
            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 106
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getEntryBCI:()I
            iconst_m1
            if_icmpne 4
         2: .line 109
            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 110
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            return
         4: .line 112
      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 115
            iconst_m1
            istore 4 /* maxIterations */
        start local 4 // int maxIterations
         6: .line 116
            iconst_0
            istore 5 /* iterations */
        start local 5 // int iterations
         7: .line 118
            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 119
            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 120
            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 122
            aload 7 /* originalOSRLoop */
            ifnonnull 12
        11: .line 128
            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 131
      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 132
            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 136
      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 137
            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 139
            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 140
            aload 10 /* l */
            ifnonnull 19
        18: .line 141
            goto 37
        19: .line 144
      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 145
            iload 4 /* maxIterations */
            iconst_m1
            if_icmpne 23
        21: .line 146
            aload 10 /* l */
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getDepth:()I
            istore 4 /* maxIterations */
        22: .line 147
            goto 26
      StackMap locals:
      StackMap stack:
        23: iload 5 /* iterations */
            iload 4 /* maxIterations */
            if_icmple 26
        24: .line 148
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        25: .line 152
      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 151
      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 155
            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 156
            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 157
            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 158
            aload 11 /* usage */
            checkcast org.graalvm.compiler.nodes.EntryProxyNode
            astore 13 /* proxy */
        start local 13 // org.graalvm.compiler.nodes.EntryProxyNode proxy
        32: .line 159
            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 157
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        34: .line 161
            aload 3 /* osr */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        35: .line 162
            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 163
            goto 14
        37: .line 165
      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 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
        38: .line 166
            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
        39: .line 168
            aconst_null
            astore 12
            aconst_null
            astore 13
        40: 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
        41: .line 169
            aload 3 /* osr */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        42: .line 170
            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
        43: .line 171
            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
        44: .line 172
            aload 3 /* osr */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        45: .line 173
            aload 11 /* osrStart */
            aload 15 /* next */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        46: .line 174
            aload 1 /* graph */
            aload 11 /* osrStart */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setStart:(Lorg/graalvm/compiler/nodes/StartNode;)V
        47: .line 175
            aload 11 /* osrStart */
            aload 10 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
        48: .line 177
            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
        49: .line 178
            aload 10 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
            istore 16 /* localsSize */
        start local 16 // int localsSize
        50: .line 179
            aload 10 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.locksSize:()I
            istore 17 /* locksSize */
        start local 17 // int locksSize
        51: .line 181
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        52: goto 78
        53: .line 182
      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:
            aconst_null
            astore 19 /* value */
        start local 19 // org.graalvm.compiler.nodes.ValueNode value
        54: .line 183
            iload 18 /* i */
            iload 16 /* localsSize */
            if_icmplt 57
        55: .line 184
            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 */
        56: .line 185
            goto 58
        57: .line 186
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 10 /* osrState */
            iload 18 /* i */
            invokevirtual org.graalvm.compiler.nodes.FrameState.localAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 19 /* value */
        58: .line 188
      StackMap locals:
      StackMap stack:
            aload 19 /* value */
            instanceof org.graalvm.compiler.nodes.EntryProxyNode
            ifeq 76
        59: .line 189
            aload 19 /* value */
            checkcast org.graalvm.compiler.nodes.EntryProxyNode
            astore 20 /* proxy */
        start local 20 // org.graalvm.compiler.nodes.EntryProxyNode proxy
        60: .line 195
            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
        61: .line 196
            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
        62: .line 198
            iload 18 /* i */
            iload 16 /* localsSize */
            if_icmplt 65
        63: .line 199
            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
        64: .line 200
            goto 66
        end local 23 // org.graalvm.compiler.nodes.ValueNode osrLocal
        65: .line 201
      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
        66: .line 204
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            new org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason
            dup
            aload 10 /* osrState */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            aload 21 /* narrowedStamp */
            iload 18 /* i */
            invokespecial org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason.<init>:(ILorg/graalvm/compiler/core/common/type/Stamp;I)V
            astore 24 /* reason */
        start local 24 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason reason
        67: .line 205
            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 74
            aload 23 /* osrLocal */
            instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
            ifeq 74
            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 74
            aload 21 /* narrowedStamp */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isUnrestricted:()Z
            ifne 74
        68: .line 207
            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
        69: .line 208
            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
        70: .line 209
            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
        71: .line 210
            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
        72: .line 215
            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
        73: .line 216
            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
        74: .line 218
      StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason
      StackMap stack:
            aload 20 /* proxy */
            aload 23 /* osrLocal */
            invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
        end local 24 // org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason 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
        75: .line 219
            goto 77
        76: .line 220
      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 77
            aload 19 /* value */
            ifnull 77
            aload 19 /* value */
            instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
            ifne 77
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 19 // org.graalvm.compiler.nodes.ValueNode value
        77: .line 181
      StackMap locals:
      StackMap stack:
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        78: iload 18 /* i */
            iload 16 /* localsSize */
            iload 17 /* locksSize */
            iadd
            if_icmplt 53
        end local 18 // int i
        79: .line 224
            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
        end local 17 // int locksSize
        end local 16 // int localsSize
        end local 15 // org.graalvm.compiler.nodes.FixedNode next
        80: .line 225
            aload 14 /* context */
            ifnull 86
            aload 14 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 86
        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
        81: astore 12
            aload 14 /* context */
            ifnull 82
            aload 14 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 14 // org.graalvm.compiler.debug.DebugCloseable context
      StackMap locals:
      StackMap stack:
        82: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        83: astore 13
            aload 12
            ifnonnull 84
            aload 13
            astore 12
            goto 85
      StackMap locals:
      StackMap stack:
        84: aload 12
            aload 13
            if_acmpeq 85
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        85: aload 12
            athrow
        start local 11 // org.graalvm.compiler.nodes.extended.OSRStartNode osrStart
        86: .line 226
      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
        87: .line 227
            aload 9 /* start */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        88: .line 228
            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
        89: .line 229
            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
        90: .line 231
            iload 8 /* currentOSRWithLocks */
            ifeq 124
        91: .line 232
            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
        92: .line 233
            aconst_null
            astore 12
            aconst_null
            astore 13
        93: 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
        94: .line 234
            aload 10 /* osrState */
            invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdCount:()I
            iconst_1
            isub
            istore 15 /* i */
        start local 15 // int i
        95: goto 110
        96: .line 235
      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
        97: .line 236
            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
        98: .line 237
            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
        99: .line 238
            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 104
      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:
       100: 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
       101: .line 239
            aload 19 /* usage */
            instanceof org.graalvm.compiler.nodes.java.AccessMonitorNode
            ifeq 104
       102: .line 240
            aload 19 /* usage */
            checkcast org.graalvm.compiler.nodes.java.AccessMonitorNode
            astore 21 /* access */
        start local 21 // org.graalvm.compiler.nodes.java.AccessMonitorNode access
       103: .line 241
            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
       104: .line 238
      StackMap locals:
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 100
       105: .line 244
            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
       106: .line 245
            aload 19 /* oldNext */
            aconst_null
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
       107: .line 246
            aload 18 /* osrMonitorEnter */
            aload 19 /* oldNext */
            invokevirtual org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
       108: .line 247
            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
       109: .line 234
            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:
       110: iload 15 /* i */
            ifge 96
        end local 15 // int i
       111: .line 249
            aload 14 /* context */
            ifnull 117
            aload 14 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 117
      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
       112: astore 12
            aload 14 /* context */
            ifnull 113
            aload 14 /* context */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 14 // org.graalvm.compiler.debug.DebugCloseable context
      StackMap locals:
      StackMap stack:
       113: aload 12
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
       114: astore 13
            aload 12
            ifnonnull 115
            aload 13
            astore 12
            goto 116
      StackMap locals:
      StackMap stack:
       115: aload 12
            aload 13
            if_acmpeq 116
            aload 12
            aload 13
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
       116: aload 12
            athrow
       117: .line 251
      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
       118: .line 260
            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 123
      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:
       119: 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
       120: .line 261
            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
       121: .line 262
            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 123
       122: .line 263
            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
       123: .line 260
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 119
       124: .line 267
      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
       125: .line 268
            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
       126: .line 272
            getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
            ifne 127
            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 127
            new java.lang.AssertionError
            dup
            ldc "OSR Compilation contains references to parameters."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
       127: .line 273
      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  128     0                 this  Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase;
            0  128     1                graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1  128     2                debug  Lorg/graalvm/compiler/debug/DebugContext;
           15  128     3                  osr  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            6  128     4        maxIterations  I
            7  128     5           iterations  I
            8  128     6      originalOSRNode  Lorg/graalvm/compiler/nodes/EntryMarkerNode;
            9  128     7      originalOSRLoop  Lorg/graalvm/compiler/nodes/LoopBeginNode;
           10  128     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  128     9                start  Lorg/graalvm/compiler/nodes/StartNode;
           39  128    10             osrState  Lorg/graalvm/compiler/nodes/FrameState;
           43   81    11             osrStart  Lorg/graalvm/compiler/nodes/extended/OSRStartNode;
           86  128    11             osrStart  Lorg/graalvm/compiler/nodes/extended/OSRStartNode;
           41   82    14              context  Lorg/graalvm/compiler/debug/DebugCloseable;
           44   80    15                 next  Lorg/graalvm/compiler/nodes/FixedNode;
           50   80    16           localsSize  I
           51   80    17            locksSize  I
           52   79    18                    i  I
           54   77    19                value  Lorg/graalvm/compiler/nodes/ValueNode;
           60   75    20                proxy  Lorg/graalvm/compiler/nodes/EntryProxyNode;
           61   75    21        narrowedStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           62   75    22    unrestrictedStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
           64   65    23             osrLocal  Lorg/graalvm/compiler/nodes/ValueNode;
           66   75    23             osrLocal  Lorg/graalvm/compiler/nodes/ValueNode;
           67   75    24               reason  Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase$OSRLocalSpeculationReason;
           69   74    25                check  Lorg/graalvm/compiler/nodes/LogicNode;
           70   74    26             constant  Ljdk/vm/ci/meta/SpeculationLog$Speculation;
           71   74    27                guard  Lorg/graalvm/compiler/nodes/FixedGuardNode;
           94  113    14              context  Lorg/graalvm/compiler/debug/DebugCloseable;
           95  111    15                    i  I
           97  109    16                   id  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
           98  109    17         lockedObject  Lorg/graalvm/compiler/nodes/ValueNode;
           99  109    18      osrMonitorEnter  Lorg/graalvm/compiler/nodes/extended/OSRMonitorEnterNode;
          101  104    19                usage  Lorg/graalvm/compiler/graph/Node;
          103  104    21               access  Lorg/graalvm/compiler/nodes/java/AccessMonitorNode;
          106  109    19              oldNext  Lorg/graalvm/compiler/nodes/FixedNode;
          120  123    12                 exit  Lorg/graalvm/compiler/nodes/java/MonitorExitNode;
          121  123    14                   id  Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
      Exception table:
        from    to  target  type
          41    80      81  any
          40    83      83  any
          94   111     112  any
          93   114     114  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 276
            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 277
            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 278
            aload 2 /* osr */
            ifnonnull 4
         3: .line 279
            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 281
      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 282
            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 284
      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 285
            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 287
      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 292
            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 293
            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 294
            aload 2 /* l */
            ifnonnull 4
         3: .line 295
            aconst_null
            areturn
         4: .line 297
      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 301
            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 306
            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 215
            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 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
  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