public class org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase extends org.graalvm.compiler.phases.BasePhase<org.graalvm.compiler.nodes.spi.CoreProviders>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase
super_class: org.graalvm.compiler.phases.BasePhase
{
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/loop/phases/ConvertDeoptimizeToGuardPhase;
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.loop.phases.ConvertDeoptimizeToGuardPhase.$assertionsDisabled:Z
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.BasePhase.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/phases/ConvertDeoptimizeToGuardPhase;
protected void run(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.spi.CoreProviders);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/spi/CoreProviders;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasValueProxies:()Z
ifne 1
new java.lang.AssertionError
dup
ldc "ConvertDeoptimizeToGuardPhase always creates proxies"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.areFrameStatesAtDeopts:()Z
ifeq 2
new java.lang.AssertionError
dup
aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
new org.graalvm.compiler.phases.common.LazyValue
dup
aload 1
invokedynamic get(Lorg/graalvm/compiler/nodes/StructuredGraph;)Ljava/util/function/Supplier;
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:
()Ljava/lang/Object;
org/graalvm/compiler/loop/phases/ConvertDeoptimizeToGuardPhase.lambda$0(Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/loop/LoopsData; (6)
()Lorg/graalvm/compiler/loop/LoopsData;
invokespecial org.graalvm.compiler.phases.common.LazyValue.<init>:(Ljava/util/function/Supplier;)V
astore 3
start local 3 3: aload 1
getstatic org.graalvm.compiler.nodes.DeoptimizeNode.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 5
goto 19
StackMap locals: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.DeoptimizeNode
astore 4
start local 4 5: getstatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.$assertionsDisabled:Z
ifne 6
aload 4
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.isAlive:()Z
ifne 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue org.graalvm.compiler.nodes.DeoptimizeNode java.util.Iterator
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.getAction:()Ljdk/vm/ci/meta/DeoptimizationAction;
getstatic jdk.vm.ci.meta.DeoptimizationAction.None:Ljdk/vm/ci/meta/DeoptimizationAction;
if_acmpne 8
7: goto 19
8: StackMap locals:
StackMap stack:
aconst_null
astore 6
aconst_null
astore 7
9: aload 4
invokevirtual org.graalvm.compiler.nodes.DeoptimizeNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 8
start local 8 10: aload 4
aload 4
aload 2
ifnull 11
aload 2
invokeinterface org.graalvm.compiler.nodes.spi.CoreProviders.getLowerer:()Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
goto 12
StackMap locals: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue org.graalvm.compiler.nodes.DeoptimizeNode java.util.Iterator java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack: org.graalvm.compiler.nodes.DeoptimizeNode org.graalvm.compiler.nodes.DeoptimizeNode
11: aconst_null
StackMap locals: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue org.graalvm.compiler.nodes.DeoptimizeNode java.util.Iterator java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack: org.graalvm.compiler.nodes.DeoptimizeNode org.graalvm.compiler.nodes.DeoptimizeNode org.graalvm.compiler.nodes.spi.LoweringProvider
12: aload 3
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.propagateFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/phases/common/LazyValue;)V
13: aload 8
ifnull 19
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 6
aload 8
ifnull 15
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 8 StackMap locals:
StackMap stack:
15: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 7
aload 6
ifnonnull 17
aload 7
astore 6
goto 18
StackMap locals:
StackMap stack:
17: aload 6
aload 7
if_acmpeq 18
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 6
athrow
end local 4 19: StackMap locals: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
20: aload 2
ifnull 33
21: aload 1
getstatic org.graalvm.compiler.nodes.FixedGuardNode.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 5
goto 32
StackMap locals:
StackMap stack:
22: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FixedGuardNode
astore 4
start local 4 23: aconst_null
astore 6
aconst_null
astore 7
24: aload 4
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 8
start local 8 25: aload 4
aload 2
aload 3
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.trySplitFixedGuard:(Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/phases/common/LazyValue;)V
26: aload 8
ifnull 32
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 32
StackMap locals: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue org.graalvm.compiler.nodes.FixedGuardNode java.util.Iterator java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack: java.lang.Throwable
27: astore 6
aload 8
ifnull 28
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 8 StackMap locals:
StackMap stack:
28: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 7
aload 6
ifnonnull 30
aload 7
astore 6
goto 31
StackMap locals:
StackMap stack:
30: aload 6
aload 7
if_acmpeq 31
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 6
athrow
end local 4 32: StackMap locals: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
33: StackMap locals: org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue
StackMap stack:
new org.graalvm.compiler.phases.common.DeadCodeEliminationPhase
dup
getstatic org.graalvm.compiler.phases.common.DeadCodeEliminationPhase$Optionality.Optional: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
34: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/graalvm/compiler/loop/phases/ConvertDeoptimizeToGuardPhase;
0 35 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 35 2 context Lorg/graalvm/compiler/nodes/spi/CoreProviders;
3 35 3 lazyLoops Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;
5 19 4 d Lorg/graalvm/compiler/nodes/DeoptimizeNode;
10 15 8 closable Lorg/graalvm/compiler/debug/DebugCloseable;
23 32 4 fixedGuard Lorg/graalvm/compiler/nodes/FixedGuardNode;
25 28 8 closable Lorg/graalvm/compiler/debug/DebugCloseable;
Exception table:
from to target type
10 13 14 any
9 16 16 any
25 26 27 any
24 29 29 any
MethodParameters:
Name Flags
graph final
context
private static void trySplitFixedGuard(org.graalvm.compiler.nodes.FixedGuardNode, org.graalvm.compiler.nodes.spi.CoreProviders, org.graalvm.compiler.phases.common.LazyValue<org.graalvm.compiler.loop.LoopsData>);
descriptor: (Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/phases/common/LazyValue;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
astore 3
start local 3 1: aload 3
instanceof org.graalvm.compiler.nodes.calc.CompareNode
ifeq 14
2: aload 3
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 4
start local 4 3: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 5
start local 5 4: aload 5
instanceof org.graalvm.compiler.nodes.ValuePhiNode
ifeq 5
aload 5
checkcast org.graalvm.compiler.nodes.ValuePhiNode
goto 6
StackMap locals: org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.nodes.ValueNode
StackMap stack:
5: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.ValuePhiNode
6: astore 6
start local 6 7: aload 5
instanceof org.graalvm.compiler.nodes.ConstantNode
ifne 8
aload 6
ifnull 14
8: StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 9: aload 7
instanceof org.graalvm.compiler.nodes.ValuePhiNode
ifeq 10
aload 7
checkcast org.graalvm.compiler.nodes.ValuePhiNode
goto 11
StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
10: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.ValuePhiNode
11: astore 8
start local 8 12: aload 7
instanceof org.graalvm.compiler.nodes.ConstantNode
ifne 13
aload 8
ifnull 14
13: StackMap locals: org.graalvm.compiler.nodes.ValuePhiNode
StackMap stack:
aload 0
aload 1
aload 4
aload 5
aload 6
aload 7
aload 8
aload 2
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.processFixedGuardAndPhis:(Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/phases/common/LazyValue;)V
end local 8 end local 7 end local 6 end local 5 end local 4 14: StackMap locals: org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.phases.common.LazyValue org.graalvm.compiler.nodes.LogicNode
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 fixedGuard Lorg/graalvm/compiler/nodes/FixedGuardNode;
0 15 1 context Lorg/graalvm/compiler/nodes/spi/CoreProviders;
0 15 2 lazyLoops Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;
1 15 3 condition Lorg/graalvm/compiler/nodes/LogicNode;
3 14 4 compare Lorg/graalvm/compiler/nodes/calc/CompareNode;
4 14 5 x Lorg/graalvm/compiler/nodes/ValueNode;
7 14 6 xPhi Lorg/graalvm/compiler/nodes/ValuePhiNode;
9 14 7 y Lorg/graalvm/compiler/nodes/ValueNode;
12 14 8 yPhi Lorg/graalvm/compiler/nodes/ValuePhiNode;
Signature: (Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;)V
MethodParameters:
Name Flags
fixedGuard
context
lazyLoops
private static void processFixedGuardAndPhis(org.graalvm.compiler.nodes.FixedGuardNode, org.graalvm.compiler.nodes.spi.CoreProviders, org.graalvm.compiler.nodes.calc.CompareNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.phases.common.LazyValue<org.graalvm.compiler.loop.LoopsData>);
descriptor: (Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/phases/common/LazyValue;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=10, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokestatic org.graalvm.compiler.nodes.AbstractBeginNode.prevBegin:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 8
start local 8 1: aload 8
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 8
2: aload 8
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 9
start local 9 3: aload 4
ifnull 5
aload 4
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
aload 9
if_acmpeq 5
4: return
5: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.AbstractMergeNode
StackMap stack:
aload 6
ifnull 7
aload 6
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.merge:()Lorg/graalvm/compiler/nodes/AbstractMergeNode;
aload 9
if_acmpeq 7
6: return
7: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
aload 6
aload 9
aload 7
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.processFixedGuardAndMerge:(Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/phases/common/LazyValue;)V
end local 9 8: StackMap locals:
StackMap stack:
return
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 9 0 fixedGuard Lorg/graalvm/compiler/nodes/FixedGuardNode;
0 9 1 context Lorg/graalvm/compiler/nodes/spi/CoreProviders;
0 9 2 compare Lorg/graalvm/compiler/nodes/calc/CompareNode;
0 9 3 x Lorg/graalvm/compiler/nodes/ValueNode;
0 9 4 xPhi Lorg/graalvm/compiler/nodes/ValuePhiNode;
0 9 5 y Lorg/graalvm/compiler/nodes/ValueNode;
0 9 6 yPhi Lorg/graalvm/compiler/nodes/ValuePhiNode;
0 9 7 lazyLoops Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;
1 9 8 pred Lorg/graalvm/compiler/nodes/AbstractBeginNode;
3 8 9 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
Signature: (Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;)V
MethodParameters:
Name Flags
fixedGuard
context
compare
x
xPhi
y
yPhi
lazyLoops
private static void processFixedGuardAndMerge(org.graalvm.compiler.nodes.FixedGuardNode, org.graalvm.compiler.nodes.spi.CoreProviders, org.graalvm.compiler.nodes.calc.CompareNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValuePhiNode, org.graalvm.compiler.nodes.AbstractMergeNode, org.graalvm.compiler.phases.common.LazyValue<org.graalvm.compiler.loop.LoopsData>);
descriptor: (Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/phases/common/LazyValue;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=17, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 7
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.cfgPredecessors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
astore 9
start local 9 1: aload 9
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 23
StackMap locals: org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.phases.common.LazyValue java.util.List top java.util.Iterator
StackMap stack:
2: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 10
start local 10 3: aload 10
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.isAlive:()Z
ifne 5
4: goto 24
5: StackMap locals: org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.phases.common.LazyValue java.util.List org.graalvm.compiler.nodes.AbstractEndNode java.util.Iterator
StackMap stack:
aload 4
ifnonnull 8
6: aload 3
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 12
start local 12 7: goto 9
end local 12 8: StackMap locals:
StackMap stack:
aload 4
aload 10
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 12
start local 12 9: StackMap locals: jdk.vm.ci.meta.Constant
StackMap stack:
aload 6
ifnonnull 12
10: aload 5
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 13
start local 13 11: goto 13
end local 13 12: StackMap locals:
StackMap stack:
aload 6
aload 10
invokevirtual org.graalvm.compiler.nodes.ValuePhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
astore 13
start local 13 13: StackMap locals: jdk.vm.ci.meta.Constant
StackMap stack:
aload 12
ifnull 23
aload 13
ifnull 23
aload 2
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
aload 12
aload 13
aload 1
invokeinterface org.graalvm.compiler.nodes.spi.CoreProviders.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
aload 2
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.foldCondition:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;Z)Z
aload 0
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.isNegated:()Z
if_icmpne 23
14: aconst_null
astore 14
aconst_null
astore 15
15: aload 0
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 16
start local 16 16: aload 10
aload 0
aload 1
invokeinterface org.graalvm.compiler.nodes.spi.CoreProviders.getLowerer:()Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
aload 8
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.propagateFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/phases/common/LazyValue;)V
17: aload 16
ifnull 23
aload 16
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 23
StackMap locals: org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.phases.common.LazyValue java.util.List org.graalvm.compiler.nodes.AbstractEndNode java.util.Iterator jdk.vm.ci.meta.Constant jdk.vm.ci.meta.Constant java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack: java.lang.Throwable
18: astore 14
aload 16
ifnull 19
aload 16
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 16 StackMap locals:
StackMap stack:
19: aload 14
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 15
aload 14
ifnonnull 21
aload 15
astore 14
goto 22
StackMap locals:
StackMap stack:
21: aload 14
aload 15
if_acmpeq 22
aload 14
aload 15
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 14
athrow
end local 13 end local 12 end local 10 23: StackMap locals: org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.phases.common.LazyValue java.util.List top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
24: StackMap locals: org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.spi.CoreProviders org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValuePhiNode org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.phases.common.LazyValue java.util.List
StackMap stack:
return
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 25 0 fixedGuard Lorg/graalvm/compiler/nodes/FixedGuardNode;
0 25 1 context Lorg/graalvm/compiler/nodes/spi/CoreProviders;
0 25 2 compare Lorg/graalvm/compiler/nodes/calc/CompareNode;
0 25 3 x Lorg/graalvm/compiler/nodes/ValueNode;
0 25 4 xPhi Lorg/graalvm/compiler/nodes/ValuePhiNode;
0 25 5 y Lorg/graalvm/compiler/nodes/ValueNode;
0 25 6 yPhi Lorg/graalvm/compiler/nodes/ValuePhiNode;
0 25 7 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
0 25 8 lazyLoops Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;
1 25 9 mergePredecessors Ljava/util/List<Lorg/graalvm/compiler/nodes/EndNode;>;
3 23 10 mergePredecessor Lorg/graalvm/compiler/nodes/AbstractEndNode;
7 8 12 xs Ljdk/vm/ci/meta/Constant;
9 23 12 xs Ljdk/vm/ci/meta/Constant;
11 12 13 ys Ljdk/vm/ci/meta/Constant;
13 23 13 ys Ljdk/vm/ci/meta/Constant;
16 19 16 position Lorg/graalvm/compiler/debug/DebugCloseable;
Exception table:
from to target type
16 17 18 any
15 20 20 any
Signature: (Lorg/graalvm/compiler/nodes/FixedGuardNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/AbstractMergeNode;Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;)V
MethodParameters:
Name Flags
fixedGuard
context
compare
x
xPhi
y
yPhi
merge
lazyLoops
private static void propagateFixed(org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.StaticDeoptimizingNode, org.graalvm.compiler.nodes.spi.LoweringProvider, org.graalvm.compiler.phases.common.LazyValue<org.graalvm.compiler.loop.LoopsData>);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/phases/common/LazyValue;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=20, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
astore 4
start local 4 1: goto 66
2: StackMap locals: org.graalvm.compiler.graph.Node
StackMap stack:
getstatic org.graalvm.compiler.core.common.GraalOptions.GuardPriorities:Lorg/graalvm/compiler/options/OptionKey;
aload 0
invokevirtual org.graalvm.compiler.nodes.FixedNode.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
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
ifeq 7
aload 4
instanceof org.graalvm.compiler.nodes.FixedGuardNode
ifeq 7
3: aload 4
checkcast org.graalvm.compiler.nodes.FixedGuardNode
astore 5
start local 5 4: aload 5
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.computePriority:()Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode$GuardPriority;
aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.computePriority:()Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode$GuardPriority;
invokevirtual org.graalvm.compiler.nodes.StaticDeoptimizingNode$GuardPriority.isHigherPriorityThan:(Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode$GuardPriority;)Z
ifeq 65
5: aload 5
aload 1
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.moveAsDeoptAfter:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;)V
6: return
end local 5 7: StackMap locals:
StackMap stack:
aload 4
instanceof org.graalvm.compiler.nodes.AbstractBeginNode
ifeq 65
8: aload 4
instanceof org.graalvm.compiler.nodes.AbstractMergeNode
ifeq 18
9: aload 4
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 5
start local 5 10: aload 5
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 6
start local 6 11: goto 14
12: StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.forwardEnds:()Lorg/graalvm/compiler/graph/NodeInputList;
invokevirtual org.graalvm.compiler.graph.NodeInputList.first:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractEndNode
astore 7
start local 7 13: aload 7
aload 1
aload 2
aload 3
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.propagateFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/phases/common/LazyValue;)V
end local 7 14: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.isAlive:()Z
ifne 12
15: aload 6
invokevirtual org.graalvm.compiler.nodes.FixedNode.isAlive:()Z
ifeq 17
16: aload 6
aload 1
aload 2
aload 3
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.propagateFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/phases/common/LazyValue;)V
17: StackMap locals:
StackMap stack:
return
end local 6 end local 5 18: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 60
19: aload 4
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
astore 5
start local 5 20: aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.IfNode
astore 6
start local 6 21: aload 5
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.isOsrLoopExit:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
ifne 22
aload 6
aload 3
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.isCountedLoopExit:(Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/phases/common/LazyValue;)Z
ifeq 24
22: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.IfNode
StackMap stack:
aload 5
aload 1
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.moveAsDeoptAfter:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;)V
23: goto 59
24: StackMap locals:
StackMap stack:
aconst_null
astore 7
aconst_null
astore 8
25: aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 9
start local 9 26: aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 10
start local 10 27: aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
astore 11
start local 11 28: aload 4
aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
if_acmpne 29
iconst_1
goto 30
StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StaticDeoptimizingNode org.graalvm.compiler.nodes.spi.LoweringProvider org.graalvm.compiler.phases.common.LazyValue org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.IfNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.LogicNode
StackMap stack:
29: iconst_0
StackMap locals:
StackMap stack: int
30: istore 12
start local 12 31: iload 12
ifeq 32
aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
goto 33
StackMap locals: int
StackMap stack:
32: aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
StackMap locals:
StackMap stack: org.graalvm.compiler.graph.NodeSourcePosition
33: astore 13
start local 13 34: aload 10
35: new org.graalvm.compiler.nodes.FixedGuardNode
dup
aload 11
aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.getReason:()Ljdk/vm/ci/meta/DeoptimizationReason;
aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.getAction:()Ljdk/vm/ci/meta/DeoptimizationAction;
aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.getSpeculation:()Ljdk/vm/ci/meta/SpeculationLog$Speculation;
iload 12
aload 13
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;ZLorg/graalvm/compiler/graph/NodeSourcePosition;)V
36: invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedGuardNode
astore 14
start local 14 37: aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
astore 15
start local 15 38: iload 12
ifeq 41
39: aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 16
start local 16 40: goto 42
end local 16 41: StackMap locals: org.graalvm.compiler.graph.NodeSourcePosition org.graalvm.compiler.nodes.FixedGuardNode org.graalvm.compiler.nodes.FixedWithNextNode
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
astore 16
start local 16 42: StackMap locals: org.graalvm.compiler.nodes.AbstractBeginNode
StackMap stack:
aload 10
aload 6
aload 16
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.removeSplitPropagate:(Lorg/graalvm/compiler/nodes/ControlSplitNode;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
43: aload 14
astore 17
start local 17 44: aload 16
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifeq 46
45: aload 14
aload 16
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokestatic org.graalvm.compiler.nodes.ProxyNode.forGuard:(Lorg/graalvm/compiler/nodes/extended/GuardingNode;Lorg/graalvm/compiler/nodes/LoopExitNode;)Lorg/graalvm/compiler/nodes/GuardProxyNode;
astore 17
46: StackMap locals: org.graalvm.compiler.graph.Node
StackMap stack:
aload 16
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
aload 17
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
47: aload 10
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
ldc "Converting deopt on %-5s branch of %s to guard for remaining branch %s."
iload 12
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aload 6
aload 16
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
48: aload 15
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 18
start local 18 49: aload 15
aload 14
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
50: aload 14
aload 18
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
51: aconst_null
aconst_null
aconst_null
iconst_0
aload 10
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
aload 10
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
aload 2
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.getDefaultSimplifier:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;ZLjdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;)Lorg/graalvm/compiler/graph/spi/SimplifierTool;
astore 19
start local 19 52: aload 16
aload 19
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.simplify:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 53: aload 9
ifnull 59
aload 9
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 59
StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StaticDeoptimizingNode org.graalvm.compiler.nodes.spi.LoweringProvider org.graalvm.compiler.phases.common.LazyValue org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.compiler.nodes.IfNode java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack: java.lang.Throwable
54: astore 7
aload 9
ifnull 55
aload 9
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 9 StackMap locals:
StackMap stack:
55: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
56: astore 8
aload 7
ifnonnull 57
aload 8
astore 7
goto 58
StackMap locals:
StackMap stack:
57: aload 7
aload 8
if_acmpeq 58
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
58: aload 7
athrow
59: StackMap locals:
StackMap stack:
return
end local 6 end local 5 60: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
ifnull 61
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
instanceof org.graalvm.compiler.nodes.ControlSplitNode
ifeq 65
61: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.$assertionsDisabled:Z
ifne 63
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
ifnonnull 63
aload 4
instanceof org.graalvm.compiler.nodes.StartNode
ifeq 62
aload 4
aload 4
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.start:()Lorg/graalvm/compiler/nodes/StartNode;
if_acmpeq 63
StackMap locals:
StackMap stack:
62: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
63: StackMap locals:
StackMap stack:
aload 4
checkcast org.graalvm.compiler.nodes.AbstractBeginNode
aload 1
invokestatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.moveAsDeoptAfter:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;)V
64: return
65: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
astore 4
66: StackMap locals:
StackMap stack:
aload 4
ifnonnull 2
67: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 68 0 from Lorg/graalvm/compiler/nodes/FixedNode;
0 68 1 deopt Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;
0 68 2 loweringProvider Lorg/graalvm/compiler/nodes/spi/LoweringProvider;
0 68 3 lazyLoops Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;
1 68 4 current Lorg/graalvm/compiler/graph/Node;
4 7 5 otherGuard Lorg/graalvm/compiler/nodes/FixedGuardNode;
10 18 5 mergeNode Lorg/graalvm/compiler/nodes/AbstractMergeNode;
11 18 6 next Lorg/graalvm/compiler/nodes/FixedNode;
13 14 7 end Lorg/graalvm/compiler/nodes/AbstractEndNode;
20 60 5 begin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
21 60 6 ifNode Lorg/graalvm/compiler/nodes/IfNode;
26 55 9 closable Lorg/graalvm/compiler/debug/DebugCloseable;
27 53 10 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
28 53 11 conditionNode Lorg/graalvm/compiler/nodes/LogicNode;
31 53 12 negateGuardCondition Z
34 53 13 survivingSuccessorPosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
37 53 14 guard Lorg/graalvm/compiler/nodes/FixedGuardNode;
38 53 15 pred Lorg/graalvm/compiler/nodes/FixedWithNextNode;
40 41 16 survivingSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
42 53 16 survivingSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
44 53 17 newGuard Lorg/graalvm/compiler/graph/Node;
49 53 18 next Lorg/graalvm/compiler/nodes/FixedNode;
52 53 19 simplifierTool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
Exception table:
from to target type
26 53 54 any
25 56 56 any
Signature: (Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;)V
MethodParameters:
Name Flags
from
deopt
loweringProvider
lazyLoops
private static void moveAsDeoptAfter(org.graalvm.compiler.nodes.FixedWithNextNode, org.graalvm.compiler.nodes.StaticDeoptimizingNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 4
start local 4 2: aload 0
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 5
start local 5 3: aload 5
aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpeq 6
4: aload 0
aload 0
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.DeoptimizeNode
dup
aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.getAction:()Ljdk/vm/ci/meta/DeoptimizationAction;
aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.getReason:()Ljdk/vm/ci/meta/DeoptimizationReason;
aload 1
invokeinterface org.graalvm.compiler.nodes.StaticDeoptimizingNode.getSpeculation:()Ljdk/vm/ci/meta/SpeculationLog$Speculation;
invokespecial org.graalvm.compiler.nodes.DeoptimizeNode.<init>:(Ljdk/vm/ci/meta/DeoptimizationAction;Ljdk/vm/ci/meta/DeoptimizationReason;Ljdk/vm/ci/meta/SpeculationLog$Speculation;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedNode
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
5: aload 5
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
end local 5 6: StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
StackMap stack:
aload 4
ifnull 12
aload 4
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
aload 4
ifnull 8
aload 4
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 4 StackMap locals:
StackMap stack:
8: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 3
aload 2
ifnonnull 10
aload 3
astore 2
goto 11
StackMap locals:
StackMap stack:
10: aload 2
aload 3
if_acmpeq 11
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
11: aload 2
athrow
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 node Lorg/graalvm/compiler/nodes/FixedWithNextNode;
0 13 1 deopt Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;
2 8 4 position Lorg/graalvm/compiler/debug/DebugCloseable;
3 6 5 next Lorg/graalvm/compiler/nodes/FixedNode;
Exception table:
from to target type
2 6 7 any
1 9 9 any
MethodParameters:
Name Flags
node
deopt
private static boolean isOsrLoopExit(org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.graalvm.compiler.nodes.LoopExitNode
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokevirtual org.graalvm.compiler.nodes.LoopExitNode.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isOsrLoop:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 node Lorg/graalvm/compiler/nodes/AbstractBeginNode;
MethodParameters:
Name Flags
node
private static boolean isCountedLoopExit(org.graalvm.compiler.nodes.IfNode, org.graalvm.compiler.phases.common.LazyValue<org.graalvm.compiler.loop.LoopsData>);
descriptor: (Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/phases/common/LazyValue;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.phases.common.LazyValue.get:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopsData
astore 2
start local 2 1: aload 2
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 3
start local 3 2: aload 3
ifnull 7
3: aload 2
aload 3
invokevirtual org.graalvm.compiler.loop.LoopsData.loop:(Lorg/graalvm/compiler/core/common/cfg/Loop;)Lorg/graalvm/compiler/loop/LoopEx;
astore 4
start local 4 4: aload 4
invokevirtual org.graalvm.compiler.loop.LoopEx.detectCounted:()Z
ifeq 7
5: aload 0
aload 4
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
invokevirtual org.graalvm.compiler.loop.CountedLoopInfo.getLimitTest:()Lorg/graalvm/compiler/nodes/IfNode;
if_acmpne 6
iconst_1
ireturn
StackMap locals: org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.core.common.cfg.Loop org.graalvm.compiler.loop.LoopEx
StackMap stack:
6: iconst_0
ireturn
end local 4 7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 ifNode Lorg/graalvm/compiler/nodes/IfNode;
0 8 1 lazyLoops Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;
1 8 2 loopsData Lorg/graalvm/compiler/loop/LoopsData;
2 8 3 loop Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
4 7 4 loopEx Lorg/graalvm/compiler/loop/LoopEx;
Signature: (Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;)Z
MethodParameters:
Name Flags
ifNode
lazyLoops
protected void run(org.graalvm.compiler.nodes.StructuredGraph, java.lang.Object);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast org.graalvm.compiler.nodes.spi.CoreProviders
invokevirtual org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.run:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/spi/CoreProviders;)V
return
LocalVariableTable:
Start End Slot Name Signature
private static org.graalvm.compiler.loop.LoopsData lambda$0(org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/loop/LoopsData;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
0: new org.graalvm.compiler.loop.LoopsData
dup
aload 0
invokespecial org.graalvm.compiler.loop.LoopsData.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/graalvm/compiler/phases/BasePhase<Lorg/graalvm/compiler/nodes/spi/CoreProviders;>;
SourceFile: "ConvertDeoptimizeToGuardPhase.java"
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 final GuardPriority = org.graalvm.compiler.nodes.StaticDeoptimizingNode$GuardPriority of org.graalvm.compiler.nodes.StaticDeoptimizingNode
public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
public final Optionality = org.graalvm.compiler.phases.common.DeadCodeEliminationPhase$Optionality of org.graalvm.compiler.phases.common.DeadCodeEliminationPhase