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: 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: 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 0: aload 0
invokespecial org.graalvm.compiler.phases.Phase.<init>:()V
return
end local 0 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 0: getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$Options.SupportOSRWithLocks:Lorg/graalvm/compiler/options/OptionKey;
aload 0
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 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 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 1: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getEntryBCI:()I
iconst_m1
if_icmpne 4
2: getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
ifne 3
aload 1
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: StackMap locals: org.graalvm.compiler.debug.DebugContext
StackMap stack:
return
4: StackMap locals:
StackMap stack:
aload 2
iconst_4
aload 1
ldc "OnStackReplacement initial at bci %d"
aload 1
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: iconst_m1
istore 4
start local 4 6: iconst_0
istore 5
start local 5 7: aload 1
invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.getEntryMarker:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/EntryMarkerNode;
astore 6
start local 6 8: aload 6
invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.osrLoop:(Lorg/graalvm/compiler/nodes/EntryMarkerNode;)Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 7
start local 7 9: aload 6
invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.osrWithLocks:(Lorg/graalvm/compiler/nodes/EntryMarkerNode;)Z
istore 8
start local 8 10: aload 7
ifnonnull 12
11: 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: 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
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
ifeq 14
13: 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: StackMap locals:
StackMap stack:
aload 1
invokestatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.getEntryMarker:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/EntryMarkerNode;
astore 3
start local 3 15: new org.graalvm.compiler.loop.LoopsData
dup
aload 1
invokespecial org.graalvm.compiler.loop.LoopsData.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
astore 9
start local 9 16: aload 9
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
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
start local 10 17: aload 10
ifnonnull 19
18: goto 37
19: 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 1
20: iload 4
iconst_m1
if_icmpne 23
21: aload 10
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getDepth:()I
istore 4
22: goto 26
StackMap locals:
StackMap stack:
23: iload 5
iload 4
if_icmple 26
24: invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
25: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
astore 10
26: StackMap locals:
StackMap stack:
aload 10
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
ifnonnull 25
27: aload 9
aload 10
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: aload 3
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
aload 3
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: aload 3
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
start local 11 31: aload 11
checkcast org.graalvm.compiler.nodes.EntryProxyNode
astore 13
start local 13 32: aload 13
aload 13
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 end local 11 33: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
34: aload 3
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
35: aload 2
iconst_4
aload 1
ldc "OnStackReplacement loop peeling result"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
end local 10 end local 9 36: goto 14
37: 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
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
astore 9
start local 9 38: aload 3
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 10
start local 10 39: aconst_null
astore 12
aconst_null
astore 13
40: aload 3
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 14
start local 14 41: aload 3
aconst_null
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
42: aload 1
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
start local 11 43: aload 3
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 15
start local 15 44: aload 3
aconst_null
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
45: aload 11
aload 15
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
46: aload 1
aload 11
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setStart:(Lorg/graalvm/compiler/nodes/StartNode;)V
47: aload 11
aload 10
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
48: aload 2
iconst_4
aload 1
ldc "OnStackReplacement after setting OSR start"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
49: aload 10
invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
istore 16
start local 16 50: aload 10
invokevirtual org.graalvm.compiler.nodes.FrameState.locksSize:()I
istore 17
start local 17 51: iconst_0
istore 18
start local 18 52: goto 78
53: 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
start local 19 54: iload 18
iload 16
if_icmplt 57
55: aload 10
iload 18
iload 16
isub
invokevirtual org.graalvm.compiler.nodes.FrameState.lockAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 19
56: goto 58
57: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 10
iload 18
invokevirtual org.graalvm.compiler.nodes.FrameState.localAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 19
58: StackMap locals:
StackMap stack:
aload 19
instanceof org.graalvm.compiler.nodes.EntryProxyNode
ifeq 76
59: aload 19
checkcast org.graalvm.compiler.nodes.EntryProxyNode
astore 20
start local 20 60: aload 20
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
start local 21 61: aload 20
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
start local 22 62: iload 18
iload 16
if_icmplt 65
63: aload 1
new org.graalvm.compiler.nodes.extended.OSRLockNode
dup
iload 18
iload 16
isub
aload 22
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
start local 23 64: goto 66
end local 23 65: 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
new org.graalvm.compiler.nodes.extended.OSRLocalNode
dup
iload 18
aload 22
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
start local 23 66: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
new org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason
dup
aload 10
getfield org.graalvm.compiler.nodes.FrameState.bci:I
aload 21
iload 18
invokespecial org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason.<init>:(ILorg/graalvm/compiler/core/common/type/Stamp;I)V
astore 24
start local 24 67: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getSpeculationLog:()Ljdk/vm/ci/meta/SpeculationLog;
aload 24
invokeinterface jdk.vm.ci.meta.SpeculationLog.maySpeculate:(Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;)Z
ifeq 74
aload 23
instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
ifeq 74
aload 19
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
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isUnrestricted:()Z
ifne 74
68: aload 1
aload 21
checkcast org.graalvm.compiler.core.common.type.ObjectStamp
aload 23
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
start local 25 69: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getSpeculationLog:()Ljdk/vm/ci/meta/SpeculationLog;
aload 24
invokeinterface jdk.vm.ci.meta.SpeculationLog.speculate:(Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;)Ljdk/vm/ci/meta/SpeculationLog$Speculation;
astore 26
start local 26 70: aload 1
new org.graalvm.compiler.nodes.FixedGuardNode
dup
aload 25
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
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
start local 27 71: aload 1
aload 11
aload 27
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
72: aload 20
aload 23
aload 10
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: aload 1
new org.graalvm.compiler.nodes.PiNode
dup
aload 23
aload 21
aload 27
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
end local 27 end local 26 end local 25 74: StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$OSRLocalSpeculationReason
StackMap stack:
aload 20
aload 23
invokevirtual org.graalvm.compiler.nodes.EntryProxyNode.replaceAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
end local 24 end local 23 end local 22 end local 21 end local 20 75: goto 77
76: 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
ifnull 77
aload 19
instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
ifne 77
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 19 77: StackMap locals:
StackMap stack:
iinc 18 1
StackMap locals:
StackMap stack:
78: iload 18
iload 16
iload 17
iadd
if_icmplt 53
end local 18 79: aload 3
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
aload 11
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
end local 17 end local 16 end local 15 80: aload 14
ifnull 86
aload 14
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 86
end local 11 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
ifnull 82
aload 14
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 14 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 86: 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
iconst_4
aload 1
ldc "OnStackReplacement after replacing entry proxies"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
87: aload 9
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
88: aload 2
iconst_4
aload 1
ldc "OnStackReplacement result"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
89: 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
invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
90: iload 8
ifeq 124
91: getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.OsrWithLocksCount:Lorg/graalvm/compiler/debug/CounterKey;
aload 2
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
92: aconst_null
astore 12
aconst_null
astore 13
93: aload 11
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 14
start local 14 94: aload 10
invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdCount:()I
iconst_1
isub
istore 15
start local 15 95: goto 110
96: 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
iload 15
invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdAt:(I)Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
astore 16
start local 16 97: aload 10
iload 15
invokevirtual org.graalvm.compiler.nodes.FrameState.lockAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 17
start local 17 98: aload 1
new org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode
dup
aload 17
aload 16
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
start local 18 99: aload 16
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
start local 19 101: aload 19
instanceof org.graalvm.compiler.nodes.java.AccessMonitorNode
ifeq 104
102: aload 19
checkcast org.graalvm.compiler.nodes.java.AccessMonitorNode
astore 21
start local 21 103: aload 21
aload 17
invokevirtual org.graalvm.compiler.nodes.java.AccessMonitorNode.setObject:(Lorg/graalvm/compiler/nodes/ValueNode;)V
end local 21 end local 19 104: StackMap locals:
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 100
105: aload 11
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 19
start local 19 106: aload 19
aconst_null
invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
107: aload 18
aload 19
invokevirtual org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
108: aload 11
aload 18
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 19 end local 18 end local 17 end local 16 109: iinc 15 -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
ifge 96
end local 15 111: aload 14
ifnull 117
aload 14
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
ifnull 113
aload 14
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 14 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: StackMap locals:
StackMap stack:
aload 2
iconst_4
aload 1
ldc "After inserting OSR monitor enters"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
118: aload 1
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
start local 12 120: aload 12
invokevirtual org.graalvm.compiler.nodes.java.MonitorExitNode.getMonitorId:()Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
astore 14
start local 14 121: aload 14
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: 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 end local 12 123: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 119
124: 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
iconst_4
aload 1
ldc "OnStackReplacement result"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
125: 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
invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
126: getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
ifne 127
aload 1
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: StackMap locals:
StackMap stack:
return
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aload 0
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
start local 1 1: aload 1
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.EntryMarkerNode
astore 2
start local 2 2: aload 2
ifnonnull 4
3: 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: StackMap locals: org.graalvm.compiler.graph.iterators.NodeIterable org.graalvm.compiler.nodes.EntryMarkerNode
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmple 6
5: new org.graalvm.compiler.debug.GraalError
dup
ldc "Multiple OnStackReplacementNodes generated"
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
invokevirtual org.graalvm.compiler.nodes.FrameState.stackSize:()I
ifeq 8
7: 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
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: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 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 0: new org.graalvm.compiler.loop.LoopsData
dup
aload 0
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
start local 1 1: aload 1
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
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
start local 2 2: aload 2
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.core.common.cfg.Loop
StackMap stack:
aload 2
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 end local 1 end local 0 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 0: aload 0
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 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 0: ldc 5.0
freturn
end local 0 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 0: aload 1
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 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