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 java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> ivs;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<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 void reassociateInvariants();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: 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 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: 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 4
goto 15
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopEx$InvariantPredicate org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
astore 3
start local 3 4: aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isAssociative:()Z
ifne 6
5: goto 15
6: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopEx$InvariantPredicate org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.calc.BinaryArithmeticNode java.util.Iterator
StackMap stack:
aload 3
aload 1
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 3
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
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/calc/BinaryArithmeticNode;
astore 5
start local 5 7: aload 5
aload 3
if_acmpeq 15
8: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 10
9: 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 3
aload 5
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
10: StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isAlive:()Z
ifne 13
11: getstatic org.graalvm.compiler.loop.LoopEx.$assertionsDisabled:Z
ifne 12
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isDeleted:()Z
ifeq 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
aload 2
aload 5
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
astore 5
13: StackMap locals:
StackMap stack:
aload 3
aload 5
invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
14: aload 3
invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
end local 5 end local 3 15: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopEx$InvariantPredicate org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/graalvm/compiler/loop/LoopEx;
1 17 1 invariant Lorg/graalvm/compiler/loop/LoopEx$InvariantPredicate;
2 17 2 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
4 15 3 binary Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
7 15 5 result Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
public boolean detectCounted();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, 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: ldc "Ignored potential Counted loop at %s with |<|"
aload 1
invokestatic org.graalvm.compiler.debug.Debug.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:()Ljava/util/Map;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface java.util.Map.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/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:()Ljava/util/Map;
aload 6
invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokeinterface java.util.Map.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/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;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 11
start local 11 42: aload 9
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 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.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.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/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=10, args_size=3
start local 0 start local 1 start local 2 0: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
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 16
6: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode java.util.Collection 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 10
8: aload 4
aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
checkcast org.graalvm.compiler.nodes.LoopExitNode
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
9: goto 16
10: StackMap locals: org.graalvm.compiler.nodes.cfg.Block
StackMap stack:
aload 3
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
11: aload 7
invokevirtual org.graalvm.compiler.nodes.cfg.Block.getDominated:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 15
StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode java.util.Collection java.util.Collection java.util.Queue org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.nodes.cfg.Block top java.util.Iterator
StackMap stack:
12: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.cfg.Block
astore 8
start local 8 13: 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 15
14: aload 5
aload 8
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
end local 8 15: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
end local 7 16: StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode java.util.Collection java.util.Collection java.util.Queue org.graalvm.compiler.nodes.cfg.ControlFlowGraph
StackMap stack:
aload 5
invokeinterface java.util.Queue.isEmpty:()Z
ifeq 6
17: 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
18: 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 19 0 this Lorg/graalvm/compiler/loop/LoopEx;
0 19 1 branchNodes Lorg/graalvm/compiler/graph/NodeBitMap;
0 19 2 branch Lorg/graalvm/compiler/nodes/AbstractBeginNode;
1 19 3 blocks Ljava/util/Collection<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
2 19 4 exits Ljava/util/Collection<Lorg/graalvm/compiler/nodes/LoopExitNode;>;
3 19 5 work Ljava/util/Queue<Lorg/graalvm/compiler/nodes/cfg/Block;>;
4 19 6 cfg Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
7 16 7 b Lorg/graalvm/compiler/nodes/cfg/Block;
13 15 8 d Lorg/graalvm/compiler/nodes/cfg/Block;
MethodParameters:
Name Flags
branchNodes
branch
public java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> getInductionVariables();
descriptor: ()Ljava/util/Map;
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:Ljava/util/Map;
ifnonnull 2
1: aload 0
aload 0
invokestatic org.graalvm.compiler.loop.LoopEx.findInductionVariables:(Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/Map;
putfield org.graalvm.compiler.loop.LoopEx.ivs:Ljava/util/Map;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/loop/LoopEx;
Signature: ()Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
private static java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> findInductionVariables(org.graalvm.compiler.loop.LoopEx);
descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=14, args_size=1
start local 0 0: invokestatic org.graalvm.compiler.graph.Node.newIdentityMap:()Ljava/util/Map;
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.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/nodes/ValuePhiNode;
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 6
goto 14
StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map 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.singleBackValue:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 7: aload 7
getstatic org.graalvm.compiler.nodes.PhiNode.MULTIPLE_VALUES:Lorg/graalvm/compiler/nodes/ValueNode;
if_acmpne 9
8: goto 14
9: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map 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 java.util.Map.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 java.util.Map 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 48
16: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map 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 47
StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map 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 47
22: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map 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 47
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 44
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 44
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 44
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 42
aload 7
instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
ifeq 42
40: aload 7
checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
checkcast org.graalvm.compiler.core.common.type.IntegerStamp
astore 13
start local 13 41: aload 13
invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isPositive:()Z
istore 12
end local 13 42: StackMap locals: int
StackMap stack:
iload 12
ifeq 44
43: new org.graalvm.compiler.loop.DerivedConvertedInductionVariable
dup
aload 0
aload 5
aload 7
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 44: StackMap locals:
StackMap stack:
aload 9
ifnull 47
45: aload 1
aload 7
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
46: aload 2
aload 9
invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
pop
end local 10 end local 9 end local 7 47: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map 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 48: StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map 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
49: aload 1
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 loop Lorg/graalvm/compiler/loop/LoopEx;
1 50 1 ivs Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
2 50 2 scanQueue Ljava/util/Queue<Lorg/graalvm/compiler/loop/InductionVariable;>;
3 50 3 loopBegin Lorg/graalvm/compiler/nodes/LoopBeginNode;
4 50 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 48 5 baseIv Lorg/graalvm/compiler/loop/InductionVariable;
18 48 6 baseIvNode Lorg/graalvm/compiler/nodes/ValueNode;
20 47 7 op Lorg/graalvm/compiler/nodes/ValueNode;
25 47 9 iv Lorg/graalvm/compiler/loop/InductionVariable;
26 47 10 offset Lorg/graalvm/compiler/nodes/ValueNode;
33 44 11 scale Lorg/graalvm/compiler/nodes/ValueNode;
39 44 12 isValidConvert Z
41 42 13 inputStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
Signature: (Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/Map<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
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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
invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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:Ljava/util/Map;
ifnull 5
1: aload 0
getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.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.ControlFlowAnchorNode
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