public class org.graalvm.compiler.loop.LoopEx
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.loop.LoopEx
super_class: java.lang.Object
{
private final org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block> loop;
descriptor: Lorg/graalvm/compiler/core/common/cfg/Loop;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
private org.graalvm.compiler.loop.LoopFragmentInside inside;
descriptor: Lorg/graalvm/compiler/loop/LoopFragmentInside;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.loop.LoopFragmentWhole whole;
descriptor: Lorg/graalvm/compiler/loop/LoopFragmentWhole;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.loop.CountedLoopInfo counted;
descriptor: Lorg/graalvm/compiler/loop/CountedLoopInfo;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.loop.LoopsData data;
descriptor: Lorg/graalvm/compiler/loop/LoopsData;
flags: (0x0002) ACC_PRIVATE
private jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> ivs;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, 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/LoopEx;
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.LoopEx.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>, org.graalvm.compiler.loop.LoopsData);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/loop/LoopsData;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
2: aload 0
aload 2
putfield org.graalvm.compiler.loop.LoopEx.data:Lorg/graalvm/compiler/loop/LoopsData;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/loop/LoopEx;
0 4 1 loop Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
0 4 2 data Lorg/graalvm/compiler/loop/LoopsData;
Signature: (Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;Lorg/graalvm/compiler/loop/LoopsData;)V
MethodParameters:
Name Flags
loop
data
public org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block> loop();
descriptor: ()Lorg/graalvm/compiler/core/common/cfg/Loop;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
Signature: ()Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
public org.graalvm.compiler.loop.LoopFragmentInside inside();
descriptor: ()Lorg/graalvm/compiler/loop/LoopFragmentInside;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
ifnonnull 2
1: aload 0
new org.graalvm.compiler.loop.LoopFragmentInside
dup
aload 0
invokespecial org.graalvm.compiler.loop.LoopFragmentInside.<init>:(Lorg/graalvm/compiler/loop/LoopEx;)V
putfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopEx;
public org.graalvm.compiler.loop.LoopFragmentWhole whole();
descriptor: ()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
ifnonnull 2
1: aload 0
new org.graalvm.compiler.loop.LoopFragmentWhole
dup
aload 0
invokespecial org.graalvm.compiler.loop.LoopFragmentWhole.<init>:(Lorg/graalvm/compiler/loop/LoopEx;)V
putfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopEx;
public void invalidateFragments();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
1: aload 0
aconst_null
putfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopEx;
public org.graalvm.compiler.loop.LoopFragmentInsideFrom insideFrom(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/loop/LoopFragmentInsideFrom;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
0 1 1 point Lorg/graalvm/compiler/nodes/FixedNode;
MethodParameters:
Name Flags
point
public org.graalvm.compiler.loop.LoopFragmentInsideBefore insideBefore(org.graalvm.compiler.nodes.FixedNode);
descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/loop/LoopFragmentInsideBefore;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
0 1 1 point Lorg/graalvm/compiler/nodes/FixedNode;
MethodParameters:
Name Flags
point
public boolean isOutsideLoop(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
aload 1
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.contains:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopEx;
0 3 1 n Lorg/graalvm/compiler/graph/Node;
MethodParameters:
Name Flags
n
public org.graalvm.compiler.nodes.LoopBeginNode loopBegin();
descriptor: ()Lorg/graalvm/compiler/nodes/LoopBeginNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
checkcast org.graalvm.compiler.nodes.cfg.Block
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopBeginNode
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
public org.graalvm.compiler.nodes.FixedNode predecessor();
descriptor: ()Lorg/graalvm/compiler/nodes/FixedNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.FixedNode
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
public org.graalvm.compiler.nodes.FixedNode entryPoint();
descriptor: ()Lorg/graalvm/compiler/nodes/FixedNode;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
public boolean isCounted();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.counted:Lorg/graalvm/compiler/loop/CountedLoopInfo;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/loop/LoopEx;
public org.graalvm.compiler.loop.CountedLoopInfo counted();
descriptor: ()Lorg/graalvm/compiler/loop/CountedLoopInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.counted:Lorg/graalvm/compiler/loop/CountedLoopInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
public org.graalvm.compiler.loop.LoopEx parent();
descriptor: ()Lorg/graalvm/compiler/loop/LoopEx;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.loop.LoopEx.data:Lorg/graalvm/compiler/loop/LoopsData;
aload 0
getfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.loop.LoopsData.loop:(Lorg/graalvm/compiler/core/common/cfg/Loop;)Lorg/graalvm/compiler/loop/LoopEx;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopEx;
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.count:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.isCounted:()Z
ifeq 1
new java.lang.StringBuilder
dup
ldc "CountedLoop ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 2
StackMap locals: org.graalvm.compiler.loop.LoopEx
StackMap stack: new 0 new 0
1: ldc "Loop "
StackMap locals: org.graalvm.compiler.loop.LoopEx
StackMap stack: new 0 new 0 java.lang.String
2: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "(depth="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getDepth:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopEx;
public boolean reassociateInvariants();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 2
start local 2 2: new org.graalvm.compiler.loop.LoopEx$InvariantPredicate
dup
aload 0
invokespecial org.graalvm.compiler.loop.LoopEx$InvariantPredicate.<init>:(Lorg/graalvm/compiler/loop/LoopEx;)V
astore 3
start local 3 3: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
ldc Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 5
goto 18
StackMap locals: org.graalvm.compiler.loop.LoopEx int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopEx$InvariantPredicate top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
astore 4
start local 4 5: aload 4
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isAssociative:()Z
ifne 7
6: goto 18
7: StackMap locals: org.graalvm.compiler.loop.LoopEx int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopEx$InvariantPredicate org.graalvm.compiler.nodes.calc.BinaryArithmeticNode java.util.Iterator
StackMap stack:
aload 4
aload 3
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 4
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.reassociate:(Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 8: aload 6
aload 4
if_acmpeq 18
9: aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
ifne 12
10: getstatic org.graalvm.compiler.loop.LoopEx.$assertionsDisabled:Z
ifne 11
aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.isDeleted:()Z
ifeq 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 2
aload 6
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 6
12: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 7
start local 7 13: aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 15
14: aload 7
ldc "%s : Reassociated %s into %s"
aload 2
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
ldc "%H::%n"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
aload 4
aload 6
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
15: StackMap locals: org.graalvm.compiler.debug.DebugContext
StackMap stack:
aload 4
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
16: aload 4
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
17: iinc 1 1
end local 7 end local 6 end local 4 18: StackMap locals: org.graalvm.compiler.loop.LoopEx int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopEx$InvariantPredicate top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
19: iload 1
ifeq 20
iconst_1
ireturn
StackMap locals: org.graalvm.compiler.loop.LoopEx int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopEx$InvariantPredicate
StackMap stack:
20: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/graalvm/compiler/loop/LoopEx;
1 21 1 count I
2 21 2 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 21 3 invariant Lorg/graalvm/compiler/loop/LoopEx$InvariantPredicate;
5 18 4 binary Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
8 18 6 result Lorg/graalvm/compiler/nodes/ValueNode;
13 18 7 debug Lorg/graalvm/compiler/debug/DebugContext;
public boolean detectCounted();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=13, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 2
start local 2 2: goto 4
3: StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode
StackMap stack:
aload 2
checkcast org.graalvm.compiler.nodes.FixedWithNextNode
invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
astore 2
4: StackMap locals:
StackMap stack:
aload 2
instanceof org.graalvm.compiler.nodes.FixedGuardNode
ifne 3
aload 2
instanceof org.graalvm.compiler.nodes.extended.ValueAnchorNode
ifne 3
aload 2
instanceof org.graalvm.compiler.nodes.FullInfopointNode
ifne 3
5: aload 2
instanceof org.graalvm.compiler.nodes.IfNode
ifeq 66
6: aload 2
checkcast org.graalvm.compiler.nodes.IfNode
astore 3
start local 3 7: iconst_0
istore 4
start local 4 8: aload 1
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isLoopExit:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
ifne 12
9: aload 1
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isLoopExit:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
ifne 11
10: iconst_0
ireturn
11: StackMap locals: org.graalvm.compiler.nodes.IfNode int
StackMap stack:
iconst_1
istore 4
12: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
astore 5
start local 5 13: aload 5
instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
ifne 17
aload 5
instanceof org.graalvm.compiler.nodes.calc.IntegerEqualsNode
ifne 17
14: aload 5
instanceof org.graalvm.compiler.nodes.calc.IntegerBelowNode
ifeq 16
15: aload 5
invokevirtual org.graalvm.compiler.nodes.LogicNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
ldc "Ignored potential Counted loop at %s with |<|"
aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
16: StackMap locals: org.graalvm.compiler.nodes.LogicNode
StackMap stack:
iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 5
checkcast org.graalvm.compiler.nodes.calc.CompareNode
astore 6
start local 6 18: aconst_null
astore 7
start local 7 19: aconst_null
astore 8
start local 8 20: aconst_null
astore 9
start local 9 21: aload 0
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 27
22: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.InductionVariable
astore 8
23: aload 8
ifnull 32
24: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.asCondition:()Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.mirror:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 7
25: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
26: goto 32
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.IfNode int org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode
StackMap stack:
27: aload 0
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 32
28: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.InductionVariable
astore 8
29: aload 8
ifnull 32
30: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.asCondition:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 7
31: aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 9
32: StackMap locals:
StackMap stack:
aload 7
ifnonnull 34
33: iconst_0
ireturn
34: StackMap locals:
StackMap stack:
iload 4
ifeq 36
35: aload 7
invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
astore 7
36: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 37: invokestatic org.graalvm.compiler.loop.LoopEx.$SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition:()[I
aload 7
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 38
2: 39
3: 53
4: 50
5: 58
6: 55
default: 60
}
38: StackMap locals: int
StackMap stack:
iconst_0
ireturn
39: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.isConstantStride:()Z
ifeq 40
aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.constantStride:()J
invokestatic java.lang.Math.abs:(J)J
lconst_1
lcmp
ifeq 41
40: StackMap locals:
StackMap stack:
iconst_0
ireturn
41: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.initNode:()Lorg/graalvm/compiler/nodes/ValueNode;
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 11
start local 11 42: aload 9
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 12
start local 12 43: aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Up:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
if_acmpne 46
44: aload 11
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
aload 12
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
lcmp
ifle 61
45: iconst_0
ireturn
46: StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Down:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
if_acmpne 49
47: aload 11
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
aload 12
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
lcmp
ifge 61
48: iconst_0
ireturn
49: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 12 end local 11 50: StackMap locals:
StackMap stack:
iconst_1
istore 10
51: aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Up:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
if_acmpeq 61
52: iconst_0
ireturn
53: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Up:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
if_acmpeq 61
54: iconst_0
ireturn
55: StackMap locals:
StackMap stack:
iconst_1
istore 10
56: aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Down:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
if_acmpeq 61
57: iconst_0
ireturn
58: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Down:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
if_acmpeq 61
59: iconst_0
ireturn
60: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
61: StackMap locals:
StackMap stack:
aload 0
62: new org.graalvm.compiler.loop.CountedLoopInfo
dup
aload 0
aload 8
aload 3
aload 9
iload 10
iload 4
ifeq 63
aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
goto 64
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.IfNode int org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode int
StackMap stack: org.graalvm.compiler.loop.LoopEx new 62 new 62 org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.ValueNode int
63: aload 3
invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.IfNode int org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode int
StackMap stack: org.graalvm.compiler.loop.LoopEx new 62 new 62 org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.IfNode org.graalvm.compiler.nodes.ValueNode int org.graalvm.compiler.nodes.AbstractBeginNode
64: invokespecial org.graalvm.compiler.loop.CountedLoopInfo.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/nodes/ValueNode;ZLorg/graalvm/compiler/nodes/AbstractBeginNode;)V
putfield org.graalvm.compiler.loop.LoopEx.counted:Lorg/graalvm/compiler/loop/CountedLoopInfo;
65: iconst_1
ireturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 66: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 67 0 this Lorg/graalvm/compiler/loop/LoopEx;
1 67 1 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
2 67 2 next Lorg/graalvm/compiler/nodes/FixedNode;
7 66 3 ifNode Lorg/graalvm/compiler/nodes/IfNode;
8 66 4 negated Z
13 66 5 ifTest Lorg/graalvm/compiler/nodes/LogicNode;
18 66 6 lessThan Lorg/graalvm/compiler/nodes/calc/CompareNode;
19 66 7 condition Lorg/graalvm/compiler/core/common/calc/Condition;
20 66 8 iv Lorg/graalvm/compiler/loop/InductionVariable;
21 66 9 limit Lorg/graalvm/compiler/nodes/ValueNode;
37 66 10 oneOff Z
42 50 11 initStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
43 50 12 limitStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
public org.graalvm.compiler.loop.LoopsData loopsData();
descriptor: ()Lorg/graalvm/compiler/loop/LoopsData;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.data:Lorg/graalvm/compiler/loop/LoopsData;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/LoopEx;
public void nodesInLoopBranch(org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.nodes.AbstractBeginNode);
descriptor: (Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:()Ljdk/internal/vm/compiler/collections/EconomicSet;
astore 3
start local 3 1: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 4
start local 4 2: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 5
start local 5 3: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopsData:()Lorg/graalvm/compiler/loop/LoopsData;
invokevirtual org.graalvm.compiler.loop.LoopsData.getCFG:()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
astore 6
start local 6 4: aload 5
aload 6
aload 2
invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
5: goto 18
6: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode jdk.internal.vm.compiler.collections.EconomicSet java.util.Collection java.util.Queue org.graalvm.compiler.nodes.cfg.ControlFlowGraph
StackMap stack:
aload 5
invokeinterface java.util.Queue.remove:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 7
start local 7 7: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getExits:()Ljava/util/List;
aload 7
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 11
8: getstatic org.graalvm.compiler.loop.LoopEx.$assertionsDisabled:Z
ifne 9
aload 4
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
aload 4
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
10: goto 18
StackMap locals:
StackMap stack:
11: aload 3
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
invokeinterface jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
ifeq 18
12: aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getDominatedSibling:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 8
start local 8 13: goto 17
14: StackMap locals: org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
aload 0
getfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getBlocks:()Ljava/util/List;
aload 8
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 16
15: aload 5
aload 8
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getDominatedSibling:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 8
17: StackMap locals:
StackMap stack:
aload 8
ifnonnull 14
end local 8 end local 7 18: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 6
19: aload 1
aload 2
invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
aload 3
aload 4
invokestatic org.graalvm.compiler.loop.LoopFragment.computeNodes:(Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable;Ljava/lang/Iterable;)V
20: return
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 21 0 this Lorg/graalvm/compiler/loop/LoopEx;
0 21 1 branchNodes Lorg/graalvm/compiler/graph/NodeBitMap;
0 21 2 branch Lorg/graalvm/compiler/nodes/AbstractBeginNode;
1 21 3 blocks Ljdk/internal/vm/compiler/collections/EconomicSet<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
2 21 4 exits Ljava/util/Collection<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
3 21 5 work Ljava/util/Queue<Lorg/graalvm/compiler/nodes/cfg/Block;>;
4 21 6 cfg Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
7 18 7 b Lorg/graalvm/compiler/nodes/cfg/Block;
13 18 8 d Lorg/graalvm/compiler/nodes/cfg/Block;
MethodParameters:
Name Flags
branchNodes
branch
public jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> getInductionVariables();
descriptor: ()Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnonnull 2
1: aload 0
aload 0
invokestatic org.graalvm.compiler.loop.LoopEx.findInductionVariables:(Lorg/graalvm/compiler/loop/LoopEx;)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopEx;
Signature: ()Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
private static jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> findInductionVariables(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=14, args_size=1
start local 0 0: getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
astore 1
start local 1 1: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 2
start local 2 2: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
astore 3
start local 3 3: aload 3
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
astore 4
start local 4 4: aload 3
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.valuePhis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 6
goto 14
StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.EconomicMap java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.PhiNode
astore 5
start local 5 6: aload 5
invokevirtual org.graalvm.compiler.nodes.PhiNode.singleBackValueOrThis:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 7: aload 7
aload 5
if_acmpne 9
8: goto 14
9: StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.EconomicMap java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.PhiNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 0
aload 7
aload 5
invokestatic org.graalvm.compiler.loop.LoopEx.addSub:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 8
start local 8 10: aload 8
ifnull 14
11: new org.graalvm.compiler.loop.BasicInductionVariable
dup
aload 0
aload 5
checkcast org.graalvm.compiler.nodes.ValuePhiNode
aload 5
aload 4
invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
aload 8
aload 7
checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
invokespecial org.graalvm.compiler.loop.BasicInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;)V
astore 9
start local 9 12: aload 1
aload 5
aload 9
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 2
aload 9
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 end local 5 14: StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.EconomicMap java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
15: goto 50
16: StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.EconomicMap java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode
StackMap stack:
aload 2
invokeinterface java.util.Queue.remove:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.InductionVariable
astore 5
start local 5 17: aload 5
invokevirtual org.graalvm.compiler.loop.InductionVariable.valueNode:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 18: aload 6
invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/nodes/ValueNode;
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 8
goto 49
StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.EconomicMap java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
StackMap stack:
19: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode
astore 7
start local 7 20: aload 0
aload 7
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 22
21: goto 49
22: StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.EconomicMap java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode java.util.Iterator
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
iconst_1
if_icmpne 24
aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
aload 6
if_acmpne 24
23: goto 49
24: StackMap locals:
StackMap stack:
aconst_null
astore 9
start local 9 25: aload 0
aload 7
aload 6
invokestatic org.graalvm.compiler.loop.LoopEx.addSub:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 10
start local 10 26: aload 10
ifnull 29
27: new org.graalvm.compiler.loop.DerivedOffsetInductionVariable
dup
aload 0
aload 5
aload 10
aload 7
checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
invokespecial org.graalvm.compiler.loop.DerivedOffsetInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;)V
astore 9
28: goto 46
StackMap locals: org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode
StackMap stack:
29: aload 7
instanceof org.graalvm.compiler.nodes.calc.NegateNode
ifeq 32
30: new org.graalvm.compiler.loop.DerivedScaledInductionVariable
dup
aload 0
aload 5
aload 7
checkcast org.graalvm.compiler.nodes.calc.NegateNode
invokespecial org.graalvm.compiler.loop.DerivedScaledInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/calc/NegateNode;)V
astore 9
31: goto 46
StackMap locals:
StackMap stack:
32: aload 0
aload 7
aload 6
invokestatic org.graalvm.compiler.loop.LoopEx.mul:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
dup
astore 11
start local 11 33: ifnull 36
34: new org.graalvm.compiler.loop.DerivedScaledInductionVariable
dup
aload 0
aload 5
aload 11
aload 7
invokespecial org.graalvm.compiler.loop.DerivedScaledInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
astore 9
35: goto 46
36: StackMap locals: org.graalvm.compiler.nodes.ValueNode
StackMap stack:
aload 7
instanceof org.graalvm.compiler.nodes.PiNode
ifne 37
aload 7
instanceof org.graalvm.compiler.nodes.calc.SignExtendNode
ifne 37
iconst_0
goto 38
StackMap locals:
StackMap stack:
37: iconst_1
StackMap locals:
StackMap stack: int
38: istore 12
start local 12 39: iload 12
ifne 44
aload 7
instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
ifeq 44
40: aload 7
checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
astore 13
start local 13 41: aload 13
invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.isInputAlwaysPositive:()Z
ifne 42
aload 13
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isPositive:()Z
ifne 42
iconst_0
goto 43
StackMap locals: int org.graalvm.compiler.nodes.calc.ZeroExtendNode
StackMap stack:
42: iconst_1
StackMap locals:
StackMap stack: int
43: istore 12
end local 13 44: StackMap locals:
StackMap stack:
iload 12
ifeq 46
45: new org.graalvm.compiler.loop.DerivedConvertedInductionVariable
dup
aload 0
aload 5
aload 7
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
aload 7
invokespecial org.graalvm.compiler.loop.DerivedConvertedInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
astore 9
end local 12 end local 11 46: StackMap locals:
StackMap stack:
aload 9
ifnull 49
47: aload 1
aload 7
aload 9
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
48: aload 2
aload 9
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
end local 10 end local 9 end local 7 49: StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.EconomicMap java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
end local 6 end local 5 50: StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.EconomicMap java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode
StackMap stack:
aload 2
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 16
51: aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 loop Lorg/graalvm/compiler/loop/LoopEx;
1 52 1 ivs Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
2 52 2 scanQueue Ljava/util/Queue<Lorg/graalvm/compiler/loop/InductionVariable;>;
3 52 3 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
4 52 4 forwardEnd Lorg/graalvm/compiler/nodes/AbstractEndNode;
6 14 5 phi Lorg/graalvm/compiler/nodes/PhiNode;
7 14 7 backValue Lorg/graalvm/compiler/nodes/ValueNode;
10 14 8 stride Lorg/graalvm/compiler/nodes/ValueNode;
12 14 9 biv Lorg/graalvm/compiler/loop/BasicInductionVariable;
17 50 5 baseIv Lorg/graalvm/compiler/loop/InductionVariable;
18 50 6 baseIvNode Lorg/graalvm/compiler/nodes/ValueNode;
20 49 7 op Lorg/graalvm/compiler/nodes/ValueNode;
25 49 9 iv Lorg/graalvm/compiler/loop/InductionVariable;
26 49 10 offset Lorg/graalvm/compiler/nodes/ValueNode;
33 46 11 scale Lorg/graalvm/compiler/nodes/ValueNode;
39 46 12 isValidConvert Z
41 44 13 zeroExtendNode Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;
Signature: (Lorg/graalvm/compiler/loop/LoopEx;)Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
MethodParameters:
Name Flags
loop
private static org.graalvm.compiler.nodes.ValueNode addSub(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
instanceof org.graalvm.compiler.core.common.type.IntegerStamp
ifeq 6
aload 1
instanceof org.graalvm.compiler.nodes.calc.AddNode
ifne 1
aload 1
instanceof org.graalvm.compiler.nodes.calc.SubNode
ifeq 6
1: StackMap locals:
StackMap stack:
aload 1
checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
astore 3
start local 3 2: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
if_acmpne 4
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 4
3: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
areturn
4: StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
if_acmpne 6
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 6
5: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 3 6: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 loop Lorg/graalvm/compiler/loop/LoopEx;
0 7 1 op Lorg/graalvm/compiler/nodes/ValueNode;
0 7 2 base Lorg/graalvm/compiler/nodes/ValueNode;
2 6 3 aritOp Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
MethodParameters:
Name Flags
loop
op
base
private static org.graalvm.compiler.nodes.ValueNode mul(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof org.graalvm.compiler.nodes.calc.MulNode
ifeq 6
1: aload 1
checkcast org.graalvm.compiler.nodes.calc.MulNode
astore 3
start local 3 2: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
if_acmpne 4
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 4
3: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
areturn
4: StackMap locals: org.graalvm.compiler.nodes.calc.MulNode
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
if_acmpne 6
aload 0
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
ifeq 6
5: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
areturn
end local 3 6: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
ifeq 10
7: aload 1
checkcast org.graalvm.compiler.nodes.calc.LeftShiftNode
astore 3
start local 3 8: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 2
if_acmpne 10
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
ifeq 10
9: aload 2
getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
iconst_1
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
ishl
i2l
aload 2
invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
areturn
end local 3 10: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 loop Lorg/graalvm/compiler/loop/LoopEx;
0 11 1 op Lorg/graalvm/compiler/nodes/ValueNode;
0 11 2 base Lorg/graalvm/compiler/nodes/ValueNode;
2 6 3 mul Lorg/graalvm/compiler/nodes/calc/MulNode;
8 10 3 shift Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
MethodParameters:
Name Flags
loop
op
base
public void deleteUnusedNodes();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
ifnull 5
1: aload 0
getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.getValues:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: org.graalvm.compiler.loop.LoopEx top java.util.Iterator
StackMap stack:
2: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.InductionVariable
astore 1
start local 1 3: aload 1
invokevirtual org.graalvm.compiler.loop.InductionVariable.deleteUnusedNodes:()V
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: StackMap locals: org.graalvm.compiler.loop.LoopEx
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/loop/LoopEx;
3 4 1 iv Lorg/graalvm/compiler/loop/InductionVariable;
public boolean canDuplicateLoop();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.loop.LoopEx.inside:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
invokevirtual org.graalvm.compiler.graph.NodeBitMap.iterator:()Ljava/util/Iterator;
astore 2
goto 8
StackMap locals: org.graalvm.compiler.loop.LoopEx top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.graph.Node
astore 1
start local 1 2: aload 1
instanceof org.graalvm.compiler.nodes.debug.ControlFlowAnchored
ifeq 4
3: iconst_0
ireturn
4: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.Node java.util.Iterator
StackMap stack:
aload 1
instanceof org.graalvm.compiler.nodes.FrameState
ifeq 8
5: aload 1
checkcast org.graalvm.compiler.nodes.FrameState
astore 3
start local 3 6: aload 3
getfield org.graalvm.compiler.nodes.FrameState.bci:I
bipush -4
if_icmpeq 7
aload 3
getfield org.graalvm.compiler.nodes.FrameState.bci:I
iconst_m1
if_icmpne 8
7: StackMap locals: org.graalvm.compiler.nodes.FrameState
StackMap stack:
iconst_0
ireturn
end local 3 end local 1 8: StackMap locals: org.graalvm.compiler.loop.LoopEx top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
9: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/loop/LoopEx;
2 8 1 node Lorg/graalvm/compiler/graph/Node;
6 8 3 frameState Lorg/graalvm/compiler/nodes/FrameState;
static int[] $SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.graalvm.compiler.loop.LoopEx.$SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.graalvm.compiler.core.common.calc.Condition.values:()[Lorg/graalvm/compiler/core/common/calc/Condition;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.AE:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
bipush 7
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.AT:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
bipush 9
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.BE:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
bipush 8
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.BT:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
bipush 10
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
iconst_1
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.GE:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
bipush 6
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.GT:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
iconst_5
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.LE:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
iconst_4
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.LT:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
iconst_3
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic org.graalvm.compiler.core.common.calc.Condition.NE:Lorg/graalvm/compiler/core/common/calc/Condition;
invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
iconst_2
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
dup
putstatic org.graalvm.compiler.loop.LoopEx.$SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
}
SourceFile: "LoopEx.java"
NestMembers:
org.graalvm.compiler.loop.LoopEx$InvariantPredicate
InnerClasses:
public final Direction = org.graalvm.compiler.loop.InductionVariable$Direction of org.graalvm.compiler.loop.InductionVariable
private InvariantPredicate = org.graalvm.compiler.loop.LoopEx$InvariantPredicate of org.graalvm.compiler.loop.LoopEx