public class org.graalvm.compiler.loop.test.LoopPartialUnrollTest extends org.graalvm.compiler.core.test.GraalCompilerTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.loop.test.LoopPartialUnrollTest
super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
static volatile int volatileInt;
descriptor: I
flags: (0x0048) ACC_STATIC, ACC_VOLATILE
public static long init;
descriptor: J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
private int x;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int z;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: iconst_3
putstatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.volatileInt:I
1: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.totalMemory:()J
putstatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.init:J
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
protected void checkMidTierGraph(org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/nodes/LoopBeginNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
astore 2
start local 2 1: aload 2
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: org.graalvm.compiler.loop.test.LoopPartialUnrollTest org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.graph.iterators.NodeIterable top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.LoopBeginNode
astore 3
start local 3 3: aload 3
invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isMainLoop:()Z
ifeq 5
4: return
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: ldc "expected a main loop"
iconst_0
anewarray java.lang.Object
invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.fail:(Ljava/lang/String;[Ljava/lang/Object;)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
0 8 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
1 8 2 loops Lorg/graalvm/compiler/graph/iterators/NodeIterable<Lorg/graalvm/compiler/nodes/LoopBeginNode;>;
3 5 3 loop Lorg/graalvm/compiler/nodes/LoopBeginNode;
MethodParameters:
Name Flags
graph
public static long sumWithEqualityLimit(int[]);
descriptor: ([I)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: long int
StackMap stack:
lload 1
getstatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.volatileInt:I
i2l
ladd
lstore 1
4: iinc 3 1
StackMap locals:
StackMap stack:
5: ldc 0.99
iload 3
aload 0
arraylength
if_icmpeq 6
iconst_1
goto 7
StackMap locals:
StackMap stack: double
6: iconst_0
StackMap locals: int[] long int
StackMap stack: double int
7: invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.branchProbability:(DZ)Z
ifne 3
end local 3 8: lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 text [I
1 9 1 sum J
2 8 3 i I
MethodParameters:
Name Flags
text
public void testSumWithEqualityLimit();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tIgnore cannot be resolved to a type\n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
RuntimeInvisibleAnnotations:
Test()
public void testLoopCarried();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
RuntimeInvisibleAnnotations:
Test()
public void testLoopCarriedDuplication();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
RuntimeInvisibleAnnotations:
Test()
public static int testLoopCarriedSnippet(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 11
5: StackMap locals: int int int int int
StackMap stack:
getstatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.volatileInt:I
istore 5
start local 5 6: iload 1
iload 2
iadd
istore 6
start local 6 7: iload 2
istore 3
8: iload 1
istore 2
9: iload 5
iload 6
iadd
istore 1
end local 6 end local 5 10: iinc 4 1
StackMap locals:
StackMap stack:
11: ldc 0.99
iload 4
iload 0
if_icmpge 12
iconst_1
goto 13
StackMap locals:
StackMap stack: double
12: iconst_0
StackMap locals: int int int int int
StackMap stack: double int
13: invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.branchProbability:(DZ)Z
ifne 5
end local 4 14: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 iterations I
1 15 1 a I
2 15 2 b I
3 15 3 c I
4 14 4 i I
6 10 5 t1 I
7 10 6 t2 I
MethodParameters:
Name Flags
iterations
public static int testLoopCarriedReference(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 16
5: StackMap locals: int int int int int
StackMap stack:
getstatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.volatileInt:I
istore 5
start local 5 6: iload 1
iload 2
iadd
istore 6
start local 6 7: iload 2
istore 3
8: iload 1
istore 2
9: iload 5
iload 6
iadd
istore 1
10: getstatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.volatileInt:I
istore 5
11: iload 1
iload 2
iadd
istore 6
12: iload 2
istore 3
13: iload 1
istore 2
14: iload 5
iload 6
iadd
istore 1
end local 6 end local 5 15: iinc 4 2
StackMap locals:
StackMap stack:
16: ldc 0.99
iload 4
iload 0
if_icmpge 17
iconst_1
goto 18
StackMap locals:
StackMap stack: double
17: iconst_0
StackMap locals: int int int int int
StackMap stack: double int
18: invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.branchProbability:(DZ)Z
ifne 5
end local 4 19: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 iterations I
1 20 1 a I
2 20 2 b I
3 20 3 c I
4 19 4 i I
6 15 5 t1 I
7 15 6 t2 I
MethodParameters:
Name Flags
iterations
public void testUnsignedLoopCarried();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tTest cannot be resolved to a type\n\tIgnore cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
RuntimeInvisibleAnnotations:
Test()
Ignore()
public static int testUnsignedLoopCarriedSnippet(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iload 0
istore 5
start local 5 4: goto 11
5: StackMap locals: int int int int int int
StackMap stack:
getstatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.volatileInt:I
istore 6
start local 6 6: iload 2
iload 3
iadd
istore 7
start local 7 7: iload 3
istore 4
8: iload 2
istore 3
9: iload 6
iload 7
iadd
istore 2
end local 7 end local 6 10: iinc 5 1
StackMap locals:
StackMap stack:
11: ldc 0.99
iload 5
iload 1
invokestatic java.lang.Integer.compareUnsigned:(II)I
ifge 12
iconst_1
goto 13
StackMap locals:
StackMap stack: double
12: iconst_0
StackMap locals: int int int int int int
StackMap stack: double int
13: invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.branchProbability:(DZ)Z
ifne 5
end local 5 14: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 start I
0 15 1 end I
1 15 2 a I
2 15 3 b I
3 15 4 c I
4 14 5 i I
6 10 6 t1 I
7 10 7 t2 I
MethodParameters:
Name Flags
start
end
public void testLoopCarried2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
RuntimeInvisibleAnnotations:
Test()
public static int testLoopCarried2Snippet(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iload 0
istore 5
start local 5 4: goto 11
5: StackMap locals: int int int int int int
StackMap stack:
getstatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.volatileInt:I
istore 6
start local 6 6: iload 2
iload 3
iadd
istore 7
start local 7 7: iload 3
istore 4
8: iload 2
istore 3
9: iload 6
iload 7
iadd
istore 2
end local 7 end local 6 10: iinc 5 1
StackMap locals:
StackMap stack:
11: ldc 0.99
iload 5
iload 1
if_icmpge 12
iconst_1
goto 13
StackMap locals:
StackMap stack: double
12: iconst_0
StackMap locals: int int int int int int
StackMap stack: double int
13: invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.branchProbability:(DZ)Z
ifne 5
end local 5 14: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 start I
0 15 1 end I
1 15 2 a I
2 15 3 b I
3 15 4 c I
4 14 5 i I
6 10 6 t1 I
7 10 7 t2 I
MethodParameters:
Name Flags
start
end
public int[] testComplexSnippet(int);
descriptor: (I)[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
iconst_3
putfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.x:I
1: iconst_5
istore 2
start local 2 2: aload 0
bipush 7
putfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.z:I
3: iconst_0
istore 3
start local 3 4: goto 19
5: StackMap locals: int int
StackMap stack:
iconst_0
istore 4
start local 4 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 0
dup
getfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.z:I
aload 0
getfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.x:I
iadd
putfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.z:I
8: iinc 4 1
StackMap locals:
StackMap stack:
9: ldc 0.99
iload 4
iload 3
if_icmpge 10
iconst_1
goto 11
StackMap locals:
StackMap stack: double
10: iconst_0
StackMap locals: org.graalvm.compiler.loop.test.LoopPartialUnrollTest int int int int
StackMap stack: double int
11: invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.branchProbability:(DZ)Z
ifne 7
end local 4 12: aload 0
getfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.x:I
aload 0
getfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.z:I
ixor
istore 2
13: iload 3
iconst_4
iand
ifne 16
14: aload 0
dup
getfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.z:I
iconst_1
isub
putfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.z:I
15: goto 18
StackMap locals:
StackMap stack:
16: iload 3
bipush 8
iand
ifne 18
17: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.totalMemory:()J
pop2
18: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
19: iload 3
iload 1
if_icmplt 5
end local 3 20: iconst_3
newarray 10
dup
iconst_0
aload 0
getfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.x:I
iastore
dup
iconst_1
iload 2
iastore
dup
iconst_2
aload 0
getfield org.graalvm.compiler.loop.test.LoopPartialUnrollTest.z:I
iastore
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
0 21 1 d I
2 21 2 y I
4 20 3 i I
6 12 4 j I
MethodParameters:
Name Flags
d
public void testComplex();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
RuntimeInvisibleAnnotations:
Test()
public static long testSignExtensionSnippet(long);
descriptor: (J)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: lconst_1
lstore 2
start local 2 1: iconst_0
istore 4
start local 4 2: goto 5
3: StackMap locals: long int
StackMap stack:
lload 2
iload 4
i2l
lmul
lstore 2
4: iinc 4 1
StackMap locals:
StackMap stack:
5: ldc 0.99
iload 4
i2l
lload 0
lcmp
ifge 6
iconst_1
goto 7
StackMap locals:
StackMap stack: double
6: iconst_0
StackMap locals: long long int
StackMap stack: double int
7: invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.branchProbability:(DZ)Z
ifne 3
end local 4 8: lload 2
lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 arg J
1 9 2 r J
2 8 4 i I
MethodParameters:
Name Flags
arg
public void testSignExtension();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
RuntimeInvisibleAnnotations:
Test()
public static java.lang.Object objectPhi(int);
descriptor: (I)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: sipush 200
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 1
start local 1 1: aload 1
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.blackhole:(Ljava/lang/Object;)V
2: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 8
5: StackMap locals: java.lang.Integer java.lang.Integer int
StackMap stack:
aload 2
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.blackhole:(Ljava/lang/Object;)V
6: aload 1
astore 2
7: iinc 3 1
StackMap locals:
StackMap stack:
8: ldc 100.0
iload 3
iload 0
if_icmpge 9
iconst_1
goto 10
StackMap locals:
StackMap stack: double
9: iconst_0
StackMap locals: int java.lang.Integer java.lang.Integer int
StackMap stack: double int
10: invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.iterationCount:(DZ)Z
ifne 5
end local 3 11: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 n I
1 12 1 v Ljava/lang/Integer;
3 12 2 r Ljava/lang/Integer;
4 11 3 i I
MethodParameters:
Name Flags
n
public void testObjectPhi();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
RuntimeInvisibleAnnotations:
Test()
protected org.graalvm.compiler.phases.tiers.Suites createSuites(org.graalvm.compiler.options.OptionValues);
descriptor: (Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/phases/tiers/Suites;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.createSuites:(Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/phases/tiers/Suites;
invokevirtual org.graalvm.compiler.phases.tiers.Suites.copy:()Lorg/graalvm/compiler/phases/tiers/Suites;
astore 2
start local 2 1: aload 2
invokevirtual org.graalvm.compiler.phases.tiers.Suites.getMidTier:()Lorg/graalvm/compiler/phases/PhaseSuite;
astore 3
start local 3 2: aload 3
ldc Lorg/graalvm/compiler/loop/phases/LoopPartialUnrollPhase;
invokevirtual org.graalvm.compiler.phases.PhaseSuite.findPhase:(Ljava/lang/Class;)Ljava/util/ListIterator;
astore 4
start local 4 3: aload 4
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.BasePhase
astore 5
start local 5 4: aload 4
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
checkcast org.graalvm.compiler.phases.BasePhase
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lorg/graalvm/compiler/phases/common/FrameStateAssignmentPhase;
if_acmpeq 8
5: aload 3
ldc Lorg/graalvm/compiler/loop/phases/LoopPartialUnrollPhase;
invokevirtual org.graalvm.compiler.phases.PhaseSuite.findPhase:(Ljava/lang/Class;)Ljava/util/ListIterator;
invokeinterface java.util.ListIterator.remove:()V
6: aload 3
ldc Lorg/graalvm/compiler/phases/common/FrameStateAssignmentPhase;
invokevirtual org.graalvm.compiler.phases.PhaseSuite.findPhase:(Ljava/lang/Class;)Ljava/util/ListIterator;
astore 6
start local 6 7: aload 6
aload 5
invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
end local 6 8: StackMap locals: org.graalvm.compiler.loop.test.LoopPartialUnrollTest org.graalvm.compiler.options.OptionValues org.graalvm.compiler.phases.tiers.Suites org.graalvm.compiler.phases.PhaseSuite java.util.ListIterator org.graalvm.compiler.phases.BasePhase
StackMap stack:
aload 2
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
0 9 1 opts Lorg/graalvm/compiler/options/OptionValues;
1 9 2 suites Lorg/graalvm/compiler/phases/tiers/Suites;
2 9 3 mid Lorg/graalvm/compiler/phases/PhaseSuite<Lorg/graalvm/compiler/phases/tiers/MidTierContext;>;
3 9 4 iter Ljava/util/ListIterator<Lorg/graalvm/compiler/phases/BasePhase<-Lorg/graalvm/compiler/phases/tiers/MidTierContext;>;>;
4 9 5 partialUnoll Lorg/graalvm/compiler/phases/BasePhase<-Lorg/graalvm/compiler/phases/tiers/MidTierContext;>;
7 8 6 fsa Ljava/util/ListIterator<Lorg/graalvm/compiler/phases/BasePhase<-Lorg/graalvm/compiler/phases/tiers/MidTierContext;>;>;
MethodParameters:
Name Flags
opts
public void testGraph(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.buildGraph:(Ljava/lang/String;Z)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 1: aload 0
aload 2
iconst_1
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.buildGraph:(Ljava/lang/String;Z)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 2: aload 0
aload 3
aload 4
iconst_0
iconst_0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.assertEquals:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/StructuredGraph;ZZ)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
0 4 1 reference Ljava/lang/String;
0 4 2 test Ljava/lang/String;
1 4 3 referenceGraph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 4 4 testGraph Lorg/graalvm/compiler/nodes/StructuredGraph;
MethodParameters:
Name Flags
reference
test
public org.graalvm.compiler.nodes.StructuredGraph buildGraph(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=16, args_size=3
start local 0 start local 1 start local 2 0: new org.graalvm.compiler.loop.test.LoopPartialUnrollTest$1
dup
aload 0
aload 1
invokespecial org.graalvm.compiler.loop.test.LoopPartialUnrollTest$1.<init>:(Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;Ljava/lang/String;)V
astore 3
start local 3 1: aload 0
aload 1
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getResolvedJavaMethod:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 4
start local 4 2: new org.graalvm.compiler.options.OptionValues
dup
invokestatic org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getInitialOptions:()Lorg/graalvm/compiler/options/OptionValues;
getstatic org.graalvm.compiler.loop.DefaultLoopPolicies$Options.UnrollMaxIterations:Lorg/graalvm/compiler/options/OptionKey;
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Object
invokespecial org.graalvm.compiler.options.OptionValues.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/Object;[Ljava/lang/Object;)V
astore 5
start local 5 3: aload 0
aload 0
aload 4
getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.YES:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
aload 3
aload 5
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.builder:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;Lorg/graalvm/compiler/core/common/CompilationIdentifier;Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getEagerGraphBuilderSuite:()Lorg/graalvm/compiler/phases/PhaseSuite;
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.parse:(Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;Lorg/graalvm/compiler/phases/PhaseSuite;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 6
start local 6 4: aconst_null
astore 7
aconst_null
astore 8
5: aload 6
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
aload 1
aload 4
aload 6
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 9
start local 9 6: new org.graalvm.compiler.phases.tiers.MidTierContext
dup
aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getTargetProvider:()Lorg/graalvm/compiler/phases/tiers/TargetProvider;
getstatic org.graalvm.compiler.phases.OptimisticOptimizations.ALL:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
aconst_null
invokespecial org.graalvm.compiler.phases.tiers.MidTierContext.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/phases/tiers/TargetProvider;Lorg/graalvm/compiler/phases/OptimisticOptimizations;Ljdk/vm/ci/meta/ProfilingInfo;)V
astore 10
start local 10 7: aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
astore 11
start local 11 8: aload 11
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
9: new org.graalvm.compiler.phases.common.RemoveValueProxyPhase
dup
invokespecial org.graalvm.compiler.phases.common.RemoveValueProxyPhase.<init>:()V
aload 6
invokevirtual org.graalvm.compiler.phases.common.RemoveValueProxyPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
10: new org.graalvm.compiler.phases.common.LoweringPhase
dup
aload 11
getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.HIGH_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
11: new org.graalvm.compiler.phases.common.FloatingReadPhase
dup
invokespecial org.graalvm.compiler.phases.common.FloatingReadPhase.<init>:()V
aload 6
invokevirtual org.graalvm.compiler.phases.common.FloatingReadPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
12: new org.graalvm.compiler.phases.common.DeadCodeEliminationPhase
dup
invokespecial org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.<init>:()V
aload 6
invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
13: new org.graalvm.compiler.phases.common.ConditionalEliminationPhase
dup
iconst_1
invokespecial org.graalvm.compiler.phases.common.ConditionalEliminationPhase.<init>:(Z)V
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
14: aload 6
invokestatic org.graalvm.compiler.java.ComputeLoopFrequenciesClosure.compute:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
15: new org.graalvm.compiler.phases.common.GuardLoweringPhase
dup
invokespecial org.graalvm.compiler.phases.common.GuardLoweringPhase.<init>:()V
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.GuardLoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
16: new org.graalvm.compiler.phases.common.LoweringPhase
dup
aload 11
getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.MID_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
17: new org.graalvm.compiler.phases.common.FrameStateAssignmentPhase
dup
invokespecial org.graalvm.compiler.phases.common.FrameStateAssignmentPhase.<init>:()V
aload 6
invokevirtual org.graalvm.compiler.phases.common.FrameStateAssignmentPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
18: new org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase
dup
invokespecial org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase.<init>:()V
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.DeoptimizationGroupingPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
19: aload 11
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
20: new org.graalvm.compiler.phases.common.ConditionalEliminationPhase
dup
iconst_1
invokespecial org.graalvm.compiler.phases.common.ConditionalEliminationPhase.<init>:(Z)V
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.ConditionalEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
21: iload 2
ifeq 30
22: new org.graalvm.compiler.loop.LoopsData
dup
aload 6
invokespecial org.graalvm.compiler.loop.LoopsData.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
astore 12
start local 12 23: aload 12
invokevirtual org.graalvm.compiler.loop.LoopsData.detectedCountedLoops:()V
24: aload 12
invokevirtual org.graalvm.compiler.loop.LoopsData.countedLoops:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 14
goto 28
StackMap locals: org.graalvm.compiler.loop.test.LoopPartialUnrollTest java.lang.String int org.graalvm.compiler.core.common.CompilationIdentifier jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.phases.tiers.MidTierContext org.graalvm.compiler.phases.common.CanonicalizerPhase org.graalvm.compiler.loop.LoopsData top java.util.Iterator
StackMap stack:
25: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.loop.LoopEx
astore 13
start local 13 26: aload 13
invokevirtual org.graalvm.compiler.loop.LoopEx.inside:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.duplicate:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
astore 15
start local 15 27: aload 15
aload 13
aconst_null
invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.insertWithinAfter:(Lorg/graalvm/compiler/loop/LoopEx;Ljdk/internal/vm/compiler/collections/EconomicMap;)V
end local 15 end local 13 28: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 25
29: aload 11
aload 6
aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getDefaultMidTierContext:()Lorg/graalvm/compiler/phases/tiers/MidTierContext;
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
end local 12 30: StackMap locals: org.graalvm.compiler.loop.test.LoopPartialUnrollTest java.lang.String int org.graalvm.compiler.core.common.CompilationIdentifier jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.phases.tiers.MidTierContext org.graalvm.compiler.phases.common.CanonicalizerPhase
StackMap stack:
new org.graalvm.compiler.phases.common.DeadCodeEliminationPhase
dup
invokespecial org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.<init>:()V
aload 6
invokevirtual org.graalvm.compiler.phases.common.DeadCodeEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
31: aload 11
aload 6
aload 10
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
32: aload 6
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
iconst_1
aload 6
ldc "before compare"
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
33: aload 6
34: aload 9
ifnull 35
aload 9
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
35: StackMap locals:
StackMap stack: org.graalvm.compiler.nodes.StructuredGraph
areturn
end local 11 end local 10 StackMap locals: org.graalvm.compiler.loop.test.LoopPartialUnrollTest java.lang.String int org.graalvm.compiler.core.common.CompilationIdentifier jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack: java.lang.Throwable
36: astore 7
37: aload 9
ifnull 38
aload 9
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 9 StackMap locals:
StackMap stack:
38: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
39: astore 8
aload 7
ifnonnull 40
aload 8
astore 7
goto 41
StackMap locals:
StackMap stack:
40: aload 7
aload 8
if_acmpeq 41
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
41: aload 7
athrow
StackMap locals: org.graalvm.compiler.loop.test.LoopPartialUnrollTest java.lang.String int org.graalvm.compiler.core.common.CompilationIdentifier jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.options.OptionValues org.graalvm.compiler.nodes.StructuredGraph
StackMap stack: java.lang.Throwable
42: astore 7
start local 7 43: aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getDebugContext:()Lorg/graalvm/compiler/debug/DebugContext;
aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
0 44 1 name Ljava/lang/String;
0 44 2 partialUnroll Z
1 44 3 id Lorg/graalvm/compiler/core/common/CompilationIdentifier;
2 44 4 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
3 44 5 options Lorg/graalvm/compiler/options/OptionValues;
4 44 6 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
6 38 9 buildScope Lorg/graalvm/compiler/debug/DebugContext$Scope;
7 36 10 context Lorg/graalvm/compiler/phases/tiers/MidTierContext;
8 36 11 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
23 30 12 dataCounted Lorg/graalvm/compiler/loop/LoopsData;
26 28 13 loop Lorg/graalvm/compiler/loop/LoopEx;
27 28 15 newSegment Lorg/graalvm/compiler/loop/LoopFragmentInside;
43 44 7 e Ljava/lang/Throwable;
Exception table:
from to target type
6 34 36 any
5 35 39 any
36 39 39 any
4 35 42 Class java.lang.Throwable
36 42 42 Class java.lang.Throwable
MethodParameters:
Name Flags
name
partialUnroll
public void testDuplicateBody(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iconst_0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.buildGraph:(Ljava/lang/String;Z)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 3
start local 3 1: aload 0
aload 2
iconst_1
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.buildGraph:(Ljava/lang/String;Z)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 2: aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
astore 5
start local 5 3: aload 5
aload 4
aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getDefaultMidTierContext:()Lorg/graalvm/compiler/phases/tiers/MidTierContext;
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
4: aload 5
aload 3
aload 0
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.getDefaultMidTierContext:()Lorg/graalvm/compiler/phases/tiers/MidTierContext;
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
5: aload 0
aload 3
aload 4
invokevirtual org.graalvm.compiler.loop.test.LoopPartialUnrollTest.assertEquals:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/StructuredGraph;)V
6: return
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 7 0 this Lorg/graalvm/compiler/loop/test/LoopPartialUnrollTest;
0 7 1 reference Ljava/lang/String;
0 7 2 test Ljava/lang/String;
1 7 3 referenceGraph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 7 4 testGraph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 7 5 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
MethodParameters:
Name Flags
reference
test
}
SourceFile: "LoopPartialUnrollTest.java"
NestMembers:
org.graalvm.compiler.loop.test.LoopPartialUnrollTest$1
InnerClasses:
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
public Options = org.graalvm.compiler.loop.DefaultLoopPolicies$Options of org.graalvm.compiler.loop.DefaultLoopPolicies
org.graalvm.compiler.loop.test.LoopPartialUnrollTest$1
public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
public Builder = org.graalvm.compiler.nodes.StructuredGraph$Builder of org.graalvm.compiler.nodes.StructuredGraph
public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
public final StandardLoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool