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
{
private static final org.graalvm.compiler.phases.util.Providers EMPTY_PROVIDERS;
descriptor: Lorg/graalvm/compiler/phases/util/Providers;
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=12, 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
3: new org.graalvm.compiler.phases.util.Providers
dup
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
aconst_null
invokespecial org.graalvm.compiler.phases.util.Providers.<init>:(Ljdk/vm/ci/meta/MetaAccessProvider;Ljdk/vm/ci/code/CodeCacheProvider;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/spi/ConstantFieldProvider;Lorg/graalvm/compiler/core/common/spi/ForeignCallsProvider;Lorg/graalvm/compiler/nodes/spi/LoweringProvider;Lorg/graalvm/compiler/nodes/spi/Replacements;Lorg/graalvm/compiler/nodes/spi/StampProvider;Lorg/graalvm/compiler/nodes/spi/PlatformConfigurationProvider;Lorg/graalvm/compiler/core/common/spi/MetaAccessExtensionProvider;)V
putstatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.EMPTY_PROVIDERS:Lorg/graalvm/compiler/phases/util/Providers;
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 17
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 17
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
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/CoreProviders;Lorg/graalvm/compiler/phases/common/LazyValue;)V
11: aload 8
ifnull 17
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 17
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: java.lang.Throwable
12: astore 6
aload 8
ifnull 13
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 8 StackMap locals:
StackMap stack:
13: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 7
aload 6
ifnonnull 15
aload 7
astore 6
goto 16
StackMap locals:
StackMap stack:
15: aload 6
aload 7
if_acmpeq 16
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 6
athrow
end local 4 17: 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
18: aload 2
ifnull 31
19: 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 30
StackMap locals:
StackMap stack:
20: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FixedGuardNode
astore 4
start local 4 21: aconst_null
astore 6
aconst_null
astore 7
22: aload 4
invokevirtual org.graalvm.compiler.nodes.FixedGuardNode.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
astore 8
start local 8 23: 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
24: aload 8
ifnull 30
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 30
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
25: astore 6
aload 8
ifnull 26
aload 8
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 8 StackMap locals:
StackMap stack:
26: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 7
aload 6
ifnonnull 28
aload 7
astore 6
goto 29
StackMap locals:
StackMap stack:
28: aload 6
aload 7
if_acmpeq 29
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 6
athrow
end local 4 30: 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 20
31: 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
32: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/graalvm/compiler/loop/phases/ConvertDeoptimizeToGuardPhase;
0 33 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 33 2 context Lorg/graalvm/compiler/nodes/spi/CoreProviders;
3 33 3 lazyLoops Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;
5 17 4 d Lorg/graalvm/compiler/nodes/DeoptimizeNode;
10 13 8 closable Lorg/graalvm/compiler/debug/DebugCloseable;
21 30 4 fixedGuard Lorg/graalvm/compiler/nodes/FixedGuardNode;
23 26 8 closable Lorg/graalvm/compiler/debug/DebugCloseable;
Exception table:
from to target type
10 11 12 any
9 14 14 any
23 24 25 any
22 27 27 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
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/CoreProviders;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.CoreProviders, 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/CoreProviders;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 68
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 67
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 67
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/CoreProviders;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/CoreProviders;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 62
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 61
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.CoreProviders 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
aload 17
getstatic org.graalvm.compiler.nodeinfo.InputType.Guard:Lorg/graalvm/compiler/nodeinfo/InputType;
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodeinfo/InputType;)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: aload 2
ifnull 52
aload 2
goto 53
StackMap locals: org.graalvm.compiler.nodes.FixedNode
StackMap stack:
52: getstatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.EMPTY_PROVIDERS:Lorg/graalvm/compiler/phases/util/Providers;
StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.spi.CoreProviders
53: 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;
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.getDefaultSimplifier:(Lorg/graalvm/compiler/nodes/spi/CoreProviders;ZLjdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/graph/spi/SimplifierTool;
astore 19
start local 19 54: 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 55: aload 9
ifnull 61
aload 9
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
goto 61
StackMap locals: org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.StaticDeoptimizingNode org.graalvm.compiler.nodes.spi.CoreProviders 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
56: astore 7
aload 9
ifnull 57
aload 9
invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
end local 9 StackMap locals:
StackMap stack:
57: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
58: astore 8
aload 7
ifnonnull 59
aload 8
astore 7
goto 60
StackMap locals:
StackMap stack:
59: aload 7
aload 8
if_acmpeq 60
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
60: aload 7
athrow
61: StackMap locals:
StackMap stack:
return
end local 6 end local 5 62: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
ifnull 63
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
instanceof org.graalvm.compiler.nodes.ControlSplitNode
ifeq 67
63: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.$assertionsDisabled:Z
ifne 65
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
ifnonnull 65
aload 4
instanceof org.graalvm.compiler.nodes.StartNode
ifeq 64
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 65
StackMap locals:
StackMap stack:
64: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
65: 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
66: return
67: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
astore 4
68: StackMap locals:
StackMap stack:
aload 4
ifnonnull 2
69: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 from Lorg/graalvm/compiler/nodes/FixedNode;
0 70 1 deopt Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;
0 70 2 providers Lorg/graalvm/compiler/nodes/spi/CoreProviders;
0 70 3 lazyLoops Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;
1 70 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 62 5 begin Lorg/graalvm/compiler/nodes/AbstractBeginNode;
21 62 6 ifNode Lorg/graalvm/compiler/nodes/IfNode;
26 57 9 closable Lorg/graalvm/compiler/debug/DebugCloseable;
27 55 10 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
28 55 11 conditionNode Lorg/graalvm/compiler/nodes/LogicNode;
31 55 12 negateGuardCondition Z
34 55 13 survivingSuccessorPosition Lorg/graalvm/compiler/graph/NodeSourcePosition;
37 55 14 guard Lorg/graalvm/compiler/nodes/FixedGuardNode;
38 55 15 pred Lorg/graalvm/compiler/nodes/FixedWithNextNode;
40 41 16 survivingSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
42 55 16 survivingSuccessor Lorg/graalvm/compiler/nodes/AbstractBeginNode;
44 55 17 newGuard Lorg/graalvm/compiler/graph/Node;
49 55 18 next Lorg/graalvm/compiler/nodes/FixedNode;
54 55 19 simplifierTool Lorg/graalvm/compiler/graph/spi/SimplifierTool;
Exception table:
from to target type
26 55 56 any
25 58 58 any
Signature: (Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/StaticDeoptimizingNode;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/phases/common/LazyValue<Lorg/graalvm/compiler/loop/LoopsData;>;)V
MethodParameters:
Name Flags
from
deopt
providers
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