public class org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest 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.nodes.test.IfNodeCanonicalizationTest
super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
static int value;
descriptor: I
flags: (0x0008) ACC_STATIC
static final byte[] testValues;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_5
newarray 8
dup
iconst_0
bipush -128
bastore
dup
iconst_1
iconst_m1
bastore
dup
iconst_3
iconst_1
bastore
dup
iconst_4
bipush 127
bastore
putstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.testValues:[B
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/nodes/test/IfNodeCanonicalizationTest;
public void test1();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=18, args_size=1
start local 0 0: aload 0
ldc "testSnippet1"
ldc Lorg/graalvm/compiler/nodes/calc/SubNode;
iconst_0
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.test:(Ljava/lang/String;Ljava/lang/Class;I)V
1: iconst_4
newarray 8
astore 1
start local 1 2: getstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.testValues:[B
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 23
StackMap locals: org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest byte[] top int int byte[]
StackMap stack:
3: aload 5
iload 3
baload
istore 2
start local 2 4: aload 1
iconst_0
iload 2
bastore
5: getstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.testValues:[B
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 21
StackMap locals: org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest byte[] int int int byte[] top int int byte[]
StackMap stack:
6: aload 9
iload 7
baload
istore 6
start local 6 7: aload 1
iconst_1
iload 6
bastore
8: getstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.testValues:[B
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 19
StackMap locals: org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest byte[] int int int byte[] int int int byte[] top int int byte[]
StackMap stack:
9: aload 13
iload 11
baload
istore 10
start local 10 10: aload 1
iconst_2
iload 10
bastore
11: getstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.testValues:[B
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 17
StackMap locals: org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest byte[] int int int byte[] int int int byte[] int int int byte[] top int int byte[]
StackMap stack:
12: aload 17
iload 15
baload
istore 14
start local 14 13: aload 1
iconst_3
iload 14
bastore
14: iconst_2
putstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.value:I
15: aload 0
ldc "testSnippet1"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
pop
end local 14 16: iinc 15 1
StackMap locals:
StackMap stack:
17: iload 15
iload 16
if_icmplt 12
end local 10 18: iinc 11 1
StackMap locals: org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest byte[] int int int byte[] int int int byte[] top int int byte[]
StackMap stack:
19: iload 11
iload 12
if_icmplt 9
end local 6 20: iinc 7 1
StackMap locals: org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest byte[] int int int byte[] top int int byte[]
StackMap stack:
21: iload 7
iload 8
if_icmplt 6
end local 2 22: iinc 3 1
StackMap locals: org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest byte[] top int int byte[]
StackMap stack:
23: iload 3
iload 4
if_icmplt 3
24: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
2 25 1 values [B
4 22 2 a B
7 20 6 b B
10 18 10 c B
13 16 14 d B
RuntimeVisibleAnnotations:
org.junit.Test()
public int testSnippet1(byte[]);
descriptor: ([B)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
baload
aload 1
iconst_1
baload
isub
istore 2
start local 2 1: iload 2
ifge 3
2: iconst_2
putstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.value:I
3: StackMap locals: int
StackMap stack:
aload 1
iconst_3
baload
aload 1
iconst_2
baload
isub
istore 2
4: iload 2
ifge 6
5: iconst_1
putstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.value:I
6: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.value:I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
0 7 1 values [B
1 7 2 v I
MethodParameters:
Name Flags
values
public void test2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "testSnippet2"
iconst_1
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.test:(Ljava/lang/String;I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public boolean testSnippet2(int, int[]);
descriptor: (I[I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
istore 3
start local 3 1: iload 1
iflt 2
iload 1
iload 3
if_icmplt 4
2: StackMap locals: int
StackMap stack:
iload 1
putstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.value:I
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
0 5 1 a I
0 5 2 limit [I
1 5 3 l I
MethodParameters:
Name Flags
a
limit
public void test3();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "testSnippet3"
iconst_1
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.test:(Ljava/lang/String;I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
RuntimeVisibleAnnotations:
org.junit.Ignore(value = "currently not working because swapped case isn't handled")
org.junit.Test()
public boolean testSnippet3(int, int[]);
descriptor: (I[I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
istore 3
start local 3 1: iload 1
iload 3
if_icmpge 4
iload 1
iflt 4
2: bipush 9
putstatic org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.value:I
3: iconst_1
ireturn
4: StackMap locals: int
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
0 5 1 a I
0 5 2 limit [I
1 5 3 l I
MethodParameters:
Name Flags
a
limit
public void test4();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "testSnippet4"
iconst_1
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.test:(Ljava/lang/String;I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public boolean testSnippet4(int, int[]);
descriptor: (I[I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
istore 3
start local 3 1: iload 1
ifge 3
2: invokestatic org.graalvm.compiler.api.directives.GraalDirectives.deoptimize:()V
3: StackMap locals: int
StackMap stack:
iload 1
iload 3
if_icmplt 5
4: invokestatic org.graalvm.compiler.api.directives.GraalDirectives.deoptimize:()V
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
0 6 1 a I
0 6 2 limit [I
1 6 3 l I
MethodParameters:
Name Flags
a
limit
public void test5();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "testSnippet5"
iconst_1
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.test:(Ljava/lang/String;I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
RuntimeVisibleAnnotations:
org.junit.Ignore(value = "Reversed conditions aren't working with guards")
org.junit.Test()
public boolean testSnippet5(int, int[]);
descriptor: (I[I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
istore 3
start local 3 1: iload 1
iload 3
if_icmplt 3
2: invokestatic org.graalvm.compiler.api.directives.GraalDirectives.deoptimize:()V
3: StackMap locals: int
StackMap stack:
iload 1
ifge 5
4: invokestatic org.graalvm.compiler.api.directives.GraalDirectives.deoptimize:()V
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
0 6 1 a I
0 6 2 limit [I
1 6 3 l I
MethodParameters:
Name Flags
a
limit
public void test(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc Lorg/graalvm/compiler/nodes/LogicNode;
iload 2
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.test:(Ljava/lang/String;Ljava/lang/Class;I)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
0 2 1 name Ljava/lang/String;
0 2 2 logicCount I
MethodParameters:
Name Flags
name
logicCount
public void test(java.lang.String, java.lang.Class<? extends org.graalvm.compiler.graph.Node>, );
descriptor: (Ljava/lang/String;Ljava/lang/Class;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.YES:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.parseEager:(Ljava/lang/String;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 4
start local 4 1: aload 0
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
astore 5
start local 5 2: aload 0
invokevirtual org.graalvm.compiler.nodes.test.IfNodeCanonicalizationTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
astore 6
start local 6 3: new org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase
dup
invokespecial org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.<init>:()V
aload 4
aload 5
invokevirtual org.graalvm.compiler.loop.phases.ConvertDeoptimizeToGuardPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
4: aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.clearAllStateAfter:()V
5: aload 4
getstatic org.graalvm.compiler.nodes.StructuredGraph$GuardsStage.AFTER_FSA:Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setGuardsStage:(Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;)V
6: aload 6
aload 4
aload 5
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
7: new org.graalvm.compiler.phases.common.IterativeConditionalEliminationPhase
dup
aload 6
iconst_1
invokespecial org.graalvm.compiler.phases.common.IterativeConditionalEliminationPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Z)V
aload 4
aload 5
invokevirtual org.graalvm.compiler.phases.common.IterativeConditionalEliminationPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
8: aload 6
aload 4
aload 5
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
9: aload 6
aload 4
aload 5
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
10: iload 3
i2l
aload 4
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
aload 2
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
11: 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 12 0 this Lorg/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest;
0 12 1 name Ljava/lang/String;
0 12 2 expectedClass Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;
0 12 3 expectedCount I
1 12 4 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 12 5 context Lorg/graalvm/compiler/nodes/spi/CoreProviders;
3 12 6 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
Signature: (Ljava/lang/String;Ljava/lang/Class<+Lorg/graalvm/compiler/graph/Node;>;I)V
MethodParameters:
Name Flags
name
expectedClass
expectedCount
}
SourceFile: "IfNodeCanonicalizationTest.java"
InnerClasses:
public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph