public class org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase extends org.graalvm.compiler.phases.BasePhase<org.graalvm.compiler.phases.tiers.MidTierContext>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase
super_class: org.graalvm.compiler.phases.BasePhase
{
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/phases/common/DeoptimizationGroupingPhase;
protected void run(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.phases.tiers.MidTierContext);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/MidTierContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
getstatic org.graalvm.compiler.nodes.FrameState.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 46
StackMap locals: org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.MidTierContext org.graalvm.compiler.nodes.cfg.ControlFlowGraph top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.FrameState
astore 4
start local 4 3: aconst_null
astore 6
start local 6 4: aconst_null
astore 7
start local 7 5: aconst_null
astore 8
start local 8 6: aconst_null
astore 9
start local 9 7: aload 4
invokevirtual org.graalvm.compiler.nodes.FrameState.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/nodes/AbstractDeoptimizeNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 11
goto 39
StackMap locals: org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.MidTierContext org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.nodes.FrameState java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode java.util.List top java.util.Iterator
StackMap stack:
8: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractDeoptimizeNode
astore 10
start local 10 9: aload 6
ifnonnull 12
10: aload 10
astore 6
11: goto 39
12: StackMap locals: org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.MidTierContext org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.nodes.FrameState java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode java.util.List org.graalvm.compiler.nodes.AbstractDeoptimizeNode java.util.Iterator
StackMap stack:
aload 3
ifnonnull 14
13: aload 1
iconst_1
iconst_1
iconst_0
iconst_0
invokestatic org.graalvm.compiler.nodes.cfg.ControlFlowGraph.compute:(Lorg/graalvm/compiler/nodes/StructuredGraph;ZZZZ)Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
astore 3
14: StackMap locals:
StackMap stack:
aload 6
instanceof org.graalvm.compiler.nodes.AbstractDeoptimizeNode
ifeq 31
15: aload 1
new org.graalvm.compiler.nodes.MergeNode
dup
invokespecial org.graalvm.compiler.nodes.MergeNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 12
start local 12 16: aload 1
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.EndNode
astore 13
start local 13 17: aload 6
checkcast org.graalvm.compiler.nodes.AbstractDeoptimizeNode
aload 2
invokevirtual org.graalvm.compiler.phases.tiers.MidTierContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokevirtual org.graalvm.compiler.nodes.AbstractDeoptimizeNode.getActionAndReason:(Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 14
start local 14 18: aload 6
checkcast org.graalvm.compiler.nodes.AbstractDeoptimizeNode
aload 2
invokevirtual org.graalvm.compiler.phases.tiers.MidTierContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokevirtual org.graalvm.compiler.nodes.AbstractDeoptimizeNode.getSpeculation:(Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 15
start local 15 19: aload 1
new org.graalvm.compiler.nodes.ValuePhiNode
dup
aload 14
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 12
invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 7
20: aload 1
new org.graalvm.compiler.nodes.ValuePhiNode
dup
aload 15
invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forKind:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 12
invokespecial org.graalvm.compiler.nodes.ValuePhiNode.<init>:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/AbstractMergeNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addWithoutUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 8
21: aload 12
aload 13
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
22: aload 7
aload 14
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
23: aload 8
aload 15
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
24: aload 6
aload 13
invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
25: aload 6
checkcast org.graalvm.compiler.nodes.AbstractDeoptimizeNode
aload 13
aload 3
invokestatic org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase.exitLoops:(Lorg/graalvm/compiler/nodes/AbstractDeoptimizeNode;Lorg/graalvm/compiler/nodes/EndNode;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)V
26: aload 12
aload 1
new org.graalvm.compiler.nodes.DynamicDeoptimizeNode
dup
aload 7
aload 8
invokespecial org.graalvm.compiler.nodes.DynamicDeoptimizeNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)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.AbstractMergeNode.setNext:(Lorg/graalvm/compiler/nodes/FixedNode;)V
27: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 9
28: aload 9
aload 6
checkcast org.graalvm.compiler.nodes.AbstractDeoptimizeNode
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
29: aload 12
astore 6
end local 15 end local 14 end local 13 30: goto 32
end local 12 31: StackMap locals:
StackMap stack:
aload 6
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
astore 12
start local 12 32: StackMap locals: org.graalvm.compiler.nodes.AbstractMergeNode
StackMap stack:
aload 1
new org.graalvm.compiler.nodes.EndNode
dup
invokespecial org.graalvm.compiler.nodes.EndNode.<init>:()V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.EndNode
astore 13
start local 13 33: aload 12
aload 13
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.addForwardEnd:(Lorg/graalvm/compiler/nodes/EndNode;)V
34: aload 7
aload 10
aload 2
invokevirtual org.graalvm.compiler.phases.tiers.MidTierContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokevirtual org.graalvm.compiler.nodes.AbstractDeoptimizeNode.getActionAndReason:(Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
35: aload 8
aload 10
aload 2
invokevirtual org.graalvm.compiler.phases.tiers.MidTierContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
invokevirtual org.graalvm.compiler.nodes.AbstractDeoptimizeNode.getSpeculation:(Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.PhiNode.addInput:(Lorg/graalvm/compiler/nodes/ValueNode;)V
36: aload 10
aload 13
invokevirtual org.graalvm.compiler.nodes.AbstractDeoptimizeNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
37: aload 10
aload 13
aload 3
invokestatic org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase.exitLoops:(Lorg/graalvm/compiler/nodes/AbstractDeoptimizeNode;Lorg/graalvm/compiler/nodes/EndNode;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)V
38: aload 9
aload 10
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 13 end local 12 end local 10 39: StackMap locals: org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.MidTierContext org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.nodes.FrameState java.util.Iterator org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.PhiNode org.graalvm.compiler.nodes.PhiNode java.util.List top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
40: aload 9
ifnull 46
41: aload 6
checkcast org.graalvm.compiler.nodes.AbstractMergeNode
invokevirtual org.graalvm.compiler.nodes.AbstractMergeNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
checkcast org.graalvm.compiler.nodes.DynamicDeoptimizeNode
aload 4
invokevirtual org.graalvm.compiler.nodes.DynamicDeoptimizeNode.setStateBefore:(Lorg/graalvm/compiler/nodes/FrameState;)V
42: aload 9
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 45
StackMap locals:
StackMap stack:
43: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.AbstractDeoptimizeNode
astore 10
start local 10 44: aload 10
invokevirtual org.graalvm.compiler.nodes.AbstractDeoptimizeNode.safeDelete:()V
end local 10 45: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 43
end local 9 end local 8 end local 7 end local 6 end local 4 46: StackMap locals: org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.phases.tiers.MidTierContext org.graalvm.compiler.nodes.cfg.ControlFlowGraph top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
47: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Lorg/graalvm/compiler/phases/common/DeoptimizationGroupingPhase;
0 48 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
0 48 2 context Lorg/graalvm/compiler/phases/tiers/MidTierContext;
1 48 3 cfg Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
3 46 4 fs Lorg/graalvm/compiler/nodes/FrameState;
4 46 6 target Lorg/graalvm/compiler/nodes/FixedNode;
5 46 7 reasonActionPhi Lorg/graalvm/compiler/nodes/PhiNode;
6 46 8 speculationPhi Lorg/graalvm/compiler/nodes/PhiNode;
7 46 9 obsoletes Ljava/util/List<Lorg/graalvm/compiler/nodes/AbstractDeoptimizeNode;>;
9 39 10 deopt Lorg/graalvm/compiler/nodes/AbstractDeoptimizeNode;
16 31 12 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
32 39 12 merge Lorg/graalvm/compiler/nodes/AbstractMergeNode;
17 30 13 firstEnd Lorg/graalvm/compiler/nodes/EndNode;
18 30 14 actionAndReason Lorg/graalvm/compiler/nodes/ValueNode;
19 30 15 speculation Lorg/graalvm/compiler/nodes/ValueNode;
33 39 13 newEnd Lorg/graalvm/compiler/nodes/EndNode;
44 45 10 obsolete Lorg/graalvm/compiler/nodes/AbstractDeoptimizeNode;
MethodParameters:
Name Flags
graph
context
private static void exitLoops(org.graalvm.compiler.nodes.AbstractDeoptimizeNode, org.graalvm.compiler.nodes.EndNode, org.graalvm.compiler.nodes.cfg.ControlFlowGraph);
descriptor: (Lorg/graalvm/compiler/nodes/AbstractDeoptimizeNode;Lorg/graalvm/compiler/nodes/EndNode;Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 0
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
astore 3
start local 3 1: aload 3
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getLoop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
astore 4
start local 4 2: goto 5
3: StackMap locals: org.graalvm.compiler.nodes.cfg.Block org.graalvm.compiler.core.common.cfg.Loop
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.nodes.EndNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 1
aload 1
invokevirtual org.graalvm.compiler.nodes.EndNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
new org.graalvm.compiler.nodes.LoopExitNode
dup
aload 4
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
checkcast org.graalvm.compiler.nodes.cfg.Block
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopBeginNode
invokespecial org.graalvm.compiler.nodes.LoopExitNode.<init>:(Lorg/graalvm/compiler/nodes/LoopBeginNode;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.add:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addBeforeFixed:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
4: aload 4
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
astore 4
5: StackMap locals:
StackMap stack:
aload 4
ifnonnull 3
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 deopt Lorg/graalvm/compiler/nodes/AbstractDeoptimizeNode;
0 7 1 end Lorg/graalvm/compiler/nodes/EndNode;
0 7 2 cfg Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
1 7 3 block Lorg/graalvm/compiler/nodes/cfg/Block;
2 7 4 loop Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
MethodParameters:
Name Flags
deopt
end
cfg
public float codeSizeIncrease();
descriptor: ()F
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc 2.5
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/phases/common/DeoptimizationGroupingPhase;
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.phases.tiers.MidTierContext
invokevirtual org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase.run:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/phases/tiers/MidTierContext;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/graalvm/compiler/phases/BasePhase<Lorg/graalvm/compiler/phases/tiers/MidTierContext;>;
SourceFile: "DeoptimizationGroupingPhase.java"