public class org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase extends org.graalvm.compiler.phases.Phase
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase
super_class: org.graalvm.compiler.phases.Phase
{
private static final org.graalvm.compiler.debug.CounterKey OsrWithLocksCount;
descriptor: Lorg/graalvm/compiler/debug/CounterKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.graalvm.compiler.serviceprovider.SpeculationReasonGroup OSR_LOCAL_SPECULATIONS;
descriptor: Lorg/graalvm/compiler/serviceprovider/SpeculationReasonGroup;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: 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;
4: new org.graalvm.compiler.serviceprovider.SpeculationReasonGroup
dup
ldc "OSRLocal"
iconst_3
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
ldc Lorg/graalvm/compiler/core/common/type/Stamp;
aastore
dup
iconst_2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokespecial org.graalvm.compiler.serviceprovider.SpeculationReasonGroup.<init>:(Ljava/lang/String;[Ljava/lang/Class;)V
putstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.OSR_LOCAL_SPECULATIONS:Lorg/graalvm/compiler/serviceprovider/SpeculationReasonGroup;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 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 34
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;
astore 11
start local 11 28: aload 11
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.markOsrLoop:()V
29: aload 11
invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.peel:(Lorg/graalvm/compiler/loop/LoopEx;)V
30: aload 3
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.prepareDelete:()V
31: aload 3
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
32: 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 11 end local 10 end local 9 33: goto 14
34: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
astore 9
start local 9 35: aload 3
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
astore 10
start local 10 36: aconst_null
astore 12
aconst_null
astore 13
37: aload 3
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 14
start local 14 38: aload 3
aconst_null
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
39: 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 40: aload 3
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 15
start local 15 41: aload 3
aconst_null
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
42: aload 11
aload 15
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
43: aload 1
aload 11
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setStart:(Lorg/graalvm/compiler/nodes/StartNode;)V
44: aload 11
aload 10
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
45: 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
46: aload 10
invokevirtual org.graalvm.compiler.nodes.FrameState.localsSize:()I
istore 16
start local 16 47: aload 10
invokevirtual org.graalvm.compiler.nodes.FrameState.locksSize:()I
istore 17
start local 17 48: iconst_0
istore 18
start local 18 49: goto 74
50: StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.FixedNode int int int
StackMap stack:
iload 18
iload 16
if_icmplt 53
51: aload 10
iload 18
iload 16
isub
invokevirtual org.graalvm.compiler.nodes.FrameState.lockAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 19
start local 19 52: goto 54
end local 19 53: StackMap locals:
StackMap stack:
aload 10
iload 18
invokevirtual org.graalvm.compiler.nodes.FrameState.localAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 19
start local 19 54: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 19
instanceof org.graalvm.compiler.nodes.EntryProxyNode
ifeq 72
55: aload 19
checkcast org.graalvm.compiler.nodes.EntryProxyNode
astore 20
start local 20 56: 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 57: 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 58: iload 18
iload 16
if_icmplt 61
59: 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 60: goto 62
end local 23 61: 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 62: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.OSR_LOCAL_SPECULATIONS:Lorg/graalvm/compiler/serviceprovider/SpeculationReasonGroup;
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 10
getfield org.graalvm.compiler.nodes.FrameState.bci:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 21
aastore
dup
iconst_2
iload 18
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual org.graalvm.compiler.serviceprovider.SpeculationReasonGroup.createSpeculationReason:([Ljava/lang/Object;)Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
astore 24
start local 24 63: 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 70
aload 23
instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
ifeq 70
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 70
aload 21
invokevirtual org.graalvm.compiler.core.common.type.Stamp.isUnrestricted:()Z
ifne 70
64: 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 65: 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 66: 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 67: aload 1
aload 11
aload 27
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addAfterFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedNode;)V
68: 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
69: 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 70: StackMap locals: jdk.vm.ci.meta.SpeculationLog$SpeculationReason
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 71: goto 73
72: StackMap locals: org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.nodes.EntryMarkerNode int int org.graalvm.compiler.nodes.EntryMarkerNode org.graalvm.compiler.nodes.LoopBeginNode int org.graalvm.compiler.nodes.StartNode org.graalvm.compiler.nodes.FrameState org.graalvm.compiler.nodes.extended.OSRStartNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.FixedNode int int int org.graalvm.compiler.nodes.ValueNode
StackMap stack:
getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
ifne 73
aload 19
ifnull 73
aload 19
instanceof org.graalvm.compiler.nodes.extended.OSRLocalNode
ifne 73
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 19 73: StackMap locals:
StackMap stack:
iinc 18 1
StackMap locals:
StackMap stack:
74: iload 18
iload 16
iload 17
iadd
if_icmplt 50
end local 18 75: aload 3
aload 11
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodeinfo/InputType;)V
76: aload 3
aload 11
getstatic org.graalvm.compiler.nodeinfo.InputType.Anchor:Lorg/graalvm/compiler/nodeinfo/InputType;
invokevirtual org.graalvm.compiler.nodes.EntryMarkerNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodeinfo/InputType;)V
end local 17 end local 16 end local 15 77: aload 14
ifnull 83
aload 14
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 83
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
78: astore 12
aload 14
ifnull 79
aload 14
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 14 StackMap locals:
StackMap stack:
79: aload 12
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
80: astore 13
aload 12
ifnonnull 81
aload 13
astore 12
goto 82
StackMap locals:
StackMap stack:
81: aload 12
aload 13
if_acmpeq 82
aload 12
aload 13
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
82: aload 12
athrow
start local 11 83: 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
84: aload 9
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
85: aload 2
iconst_4
aload 1
ldc "OnStackReplacement result"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
86: 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
87: iload 8
ifeq 122
88: 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
89: aconst_null
astore 12
aconst_null
astore 13
90: aload 11
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 14
start local 14 91: aload 10
invokevirtual org.graalvm.compiler.nodes.FrameState.monitorIdCount:()I
iconst_1
isub
istore 15
start local 15 92: goto 108
93: 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 94: aload 10
iload 15
invokevirtual org.graalvm.compiler.nodes.FrameState.lockAt:(I)Lorg/graalvm/compiler/nodes/ValueNode;
astore 17
start local 17 95: 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 96: aload 18
aload 11
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.stateAfter:()Lorg/graalvm/compiler/nodes/FrameState;
invokevirtual org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode.setStateAfter:(Lorg/graalvm/compiler/nodes/FrameState;)V
97: 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 102
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:
98: aload 20
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 19
start local 19 99: aload 19
instanceof org.graalvm.compiler.nodes.java.AccessMonitorNode
ifeq 102
100: aload 19
checkcast org.graalvm.compiler.nodes.java.AccessMonitorNode
astore 21
start local 21 101: aload 21
aload 17
invokevirtual org.graalvm.compiler.nodes.java.AccessMonitorNode.setObject:(Lorg/graalvm/compiler/nodes/ValueNode;)V
end local 21 end local 19 102: StackMap locals:
StackMap stack:
aload 20
invokeinterface java.util.Iterator.hasNext:()Z
ifne 98
103: aload 11
invokevirtual org.graalvm.compiler.nodes.extended.OSRStartNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 19
start local 19 104: aload 19
aconst_null
invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
105: aload 18
aload 19
invokevirtual org.graalvm.compiler.nodes.extended.OSRMonitorEnterNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
106: 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 107: 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:
108: iload 15
ifge 93
end local 15 109: aload 14
ifnull 115
aload 14
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 115
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
110: astore 12
aload 14
ifnull 111
aload 14
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 14 StackMap locals:
StackMap stack:
111: aload 12
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
112: astore 13
aload 12
ifnonnull 113
aload 13
astore 12
goto 114
StackMap locals:
StackMap stack:
113: aload 12
aload 13
if_acmpeq 114
aload 12
aload 13
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
114: aload 12
athrow
115: 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
116: 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 121
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:
117: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.java.MonitorExitNode
astore 12
start local 12 118: aload 12
invokevirtual org.graalvm.compiler.nodes.java.MonitorExitNode.getMonitorId:()Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
astore 14
start local 14 119: 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 121
120: 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 121: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 117
122: 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
123: 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
124: getstatic org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase.$assertionsDisabled:Z
ifne 125
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 125
new java.lang.AssertionError
dup
ldc "OSR Compilation contains references to parameters."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
125: 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 126 0 this Lorg/graalvm/compiler/hotspot/phases/OnStackReplacementPhase;
0 126 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
1 126 2 debug Lorg/graalvm/compiler/debug/DebugContext;
15 126 3 osr Lorg/graalvm/compiler/nodes/EntryMarkerNode;
6 126 4 maxIterations I
7 126 5 iterations I
8 126 6 originalOSRNode Lorg/graalvm/compiler/nodes/EntryMarkerNode;
9 126 7 originalOSRLoop Lorg/graalvm/compiler/nodes/LoopBeginNode;
10 126 8 currentOSRWithLocks Z
16 33 9 loops Lorg/graalvm/compiler/loop/LoopsData;
17 33 10 l Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
28 33 11 loop Lorg/graalvm/compiler/loop/LoopEx;
35 126 9 start Lorg/graalvm/compiler/nodes/StartNode;
36 126 10 osrState Lorg/graalvm/compiler/nodes/FrameState;
40 78 11 osrStart Lorg/graalvm/compiler/nodes/extended/OSRStartNode;
83 126 11 osrStart Lorg/graalvm/compiler/nodes/extended/OSRStartNode;
38 79 14 context Lorg/graalvm/compiler/debug/DebugCloseable;
41 77 15 next Lorg/graalvm/compiler/nodes/FixedNode;
47 77 16 localsSize I
48 77 17 locksSize I
49 75 18 i I
52 53 19 value Lorg/graalvm/compiler/nodes/ValueNode;
54 73 19 value Lorg/graalvm/compiler/nodes/ValueNode;
56 71 20 proxy Lorg/graalvm/compiler/nodes/EntryProxyNode;
57 71 21 narrowedStamp Lorg/graalvm/compiler/core/common/type/Stamp;
58 71 22 unrestrictedStamp Lorg/graalvm/compiler/core/common/type/Stamp;
60 61 23 osrLocal Lorg/graalvm/compiler/nodes/ValueNode;
62 71 23 osrLocal Lorg/graalvm/compiler/nodes/ValueNode;
63 71 24 reason Ljdk/vm/ci/meta/SpeculationLog$SpeculationReason;
65 70 25 check Lorg/graalvm/compiler/nodes/LogicNode;
66 70 26 constant Ljdk/vm/ci/meta/SpeculationLog$Speculation;
67 70 27 guard Lorg/graalvm/compiler/nodes/FixedGuardNode;
91 111 14 context Lorg/graalvm/compiler/debug/DebugCloseable;
92 109 15 i I
94 107 16 id Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
95 107 17 lockedObject Lorg/graalvm/compiler/nodes/ValueNode;
96 107 18 osrMonitorEnter Lorg/graalvm/compiler/nodes/extended/OSRMonitorEnterNode;
99 102 19 usage Lorg/graalvm/compiler/graph/Node;
101 102 21 access Lorg/graalvm/compiler/nodes/java/AccessMonitorNode;
104 107 19 oldNext Lorg/graalvm/compiler/nodes/FixedNode;
118 121 12 exit Lorg/graalvm/compiler/nodes/java/MonitorExitNode;
119 121 14 id Lorg/graalvm/compiler/nodes/java/MonitorIdNode;
Exception table:
from to target type
38 77 78 any
37 80 80 any
91 109 110 any
90 112 112 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.debug.GraalError
dup
ldc "No OnStackReplacementNode generated"
invokespecial org.graalvm.compiler.debug.GraalError.<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$Options
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Speculation = jdk.vm.ci.meta.SpeculationLog$Speculation of jdk.vm.ci.meta.SpeculationLog
public abstract SpeculationReason = jdk.vm.ci.meta.SpeculationLog$SpeculationReason of jdk.vm.ci.meta.SpeculationLog
public Options = org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase$Options of org.graalvm.compiler.hotspot.phases.OnStackReplacementPhase
public final Optionality = org.graalvm.compiler.phases.common.DeadCodeEliminationPhase$Optionality of org.graalvm.compiler.phases.common.DeadCodeEliminationPhase