public class org.graalvm.compiler.truffle.test.MergeExplodeProxyTest extends org.graalvm.compiler.truffle.test.PartialEvaluationTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.truffle.test.MergeExplodeProxyTest
super_class: org.graalvm.compiler.truffle.test.PartialEvaluationTest
{
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.truffle.test.PartialEvaluationTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/truffle/test/MergeExplodeProxyTest;
private void partialEval(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget);
descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.test.MergeExplodeProxyTest.partialEval:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;[Ljava/lang/Object;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 2
start local 2 1: aload 2
invokestatic org.graalvm.compiler.phases.util.GraphOrder.assertSchedulableGraph:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Z
invokestatic org.junit.Assert.assertTrue:(Z)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/truffle/test/MergeExplodeProxyTest;
0 3 1 compilable Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
1 3 2 g Lorg/graalvm/compiler/nodes/StructuredGraph;
MethodParameters:
Name Flags
compilable
public void testLoopControlVariableProxy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: bipush 14
newarray 8
dup
iconst_1
1: bipush 42
bastore
dup
iconst_3
2: bipush -12
bastore
dup
iconst_5
3: iconst_1
bastore
dup
bipush 6
4: iconst_2
bastore
dup
bipush 7
5: bipush 6
bastore
dup
bipush 8
6: iconst_3
bastore
dup
bipush 9
7: bipush 12
bastore
dup
bipush 10
8: iconst_5
bastore
dup
bipush 11
9: iconst_4
bastore
dup
bipush 12
10: iconst_4
bastore
dup
bipush 13
11: iconst_1
bastore
12: astore 1
start local 1 13: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$LoopControlVariableProxy
dup
ldc "simpleLoopProgram"
aload 1
iconst_1
iconst_3
invokespecial org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$LoopControlVariableProxy.<init>:(Ljava/lang/String;[BII)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 2
start local 2 14: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
16: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
aload 2
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
invokevirtual org.graalvm.compiler.truffle.test.MergeExplodeProxyTest.partialEval:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/graalvm/compiler/truffle/test/MergeExplodeProxyTest;
13 20 1 bytecodes [B
14 20 2 callee Lcom/oracle/truffle/api/CallTarget;
RuntimeVisibleAnnotations:
org.junit.Test()
public void test01();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=1
start local 0 0: bipush 14
newarray 8
dup
iconst_1
1: bipush 42
bastore
dup
iconst_3
2: bipush -12
bastore
dup
iconst_5
3: iconst_1
bastore
dup
bipush 6
4: iconst_2
bastore
dup
bipush 7
5: bipush 6
bastore
dup
bipush 8
6: iconst_3
bastore
dup
bipush 9
7: bipush 12
bastore
dup
bipush 10
8: iconst_5
bastore
dup
bipush 11
9: iconst_4
bastore
dup
bipush 12
10: iconst_4
bastore
dup
bipush 13
11: iconst_1
bastore
12: astore 1
start local 1 13: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$WrongLoopExitMerge
dup
ldc "mergedLoopExitProgram"
aload 1
iconst_1
iconst_3
invokespecial org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$WrongLoopExitMerge.<init>:(Ljava/lang/String;[BII)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 2
start local 2 14: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
16: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
18: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$Caller
dup
aload 2
invokespecial org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$Caller.<init>:(Lcom/oracle/truffle/api/CallTarget;)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 3
start local 3 19: aload 3
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 3
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
21: aload 3
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 3
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
23: aload 0
aload 3
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
invokevirtual org.graalvm.compiler.truffle.test.MergeExplodeProxyTest.partialEval:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
24: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/graalvm/compiler/truffle/test/MergeExplodeProxyTest;
13 25 1 bytecodes [B
14 25 2 callee Lcom/oracle/truffle/api/CallTarget;
19 25 3 caller Lcom/oracle/truffle/api/CallTarget;
RuntimeVisibleAnnotations:
org.junit.Test()
public void test01Caller();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: bipush 14
newarray 8
dup
iconst_1
1: bipush 42
bastore
dup
iconst_3
2: bipush -12
bastore
dup
iconst_5
3: iconst_1
bastore
dup
bipush 6
4: iconst_2
bastore
dup
bipush 7
5: bipush 6
bastore
dup
bipush 8
6: iconst_3
bastore
dup
bipush 9
7: bipush 12
bastore
dup
bipush 10
8: iconst_5
bastore
dup
bipush 11
9: iconst_4
bastore
dup
bipush 12
10: iconst_4
bastore
dup
bipush 13
11: iconst_1
bastore
12: astore 1
start local 1 13: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$WrongLoopExitMerge
dup
ldc "mergedLoopExitProgram"
aload 1
iconst_1
iconst_3
invokespecial org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$WrongLoopExitMerge.<init>:(Ljava/lang/String;[BII)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 2
start local 2 14: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
16: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
18: aload 0
aload 2
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
invokevirtual org.graalvm.compiler.truffle.test.MergeExplodeProxyTest.partialEval:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/graalvm/compiler/truffle/test/MergeExplodeProxyTest;
13 20 1 bytecodes [B
14 20 2 callee Lcom/oracle/truffle/api/CallTarget;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSameValueProxy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: bipush 25
newarray 8
dup
iconst_1
1: bipush 42
bastore
dup
iconst_3
2: bipush -2
bastore
dup
iconst_5
3: iconst_1
bastore
dup
bipush 6
4: iconst_2
bastore
dup
bipush 7
5: bipush 6
bastore
dup
bipush 9
6: bipush -2
bastore
dup
bipush 11
7: iconst_1
bastore
dup
bipush 12
8: iconst_2
bastore
dup
bipush 13
9: bipush 6
bastore
dup
bipush 14
10: iconst_3
bastore
dup
bipush 15
11: bipush 18
bastore
dup
bipush 16
12: iconst_5
bastore
dup
bipush 17
13: bipush 10
bastore
dup
bipush 18
14: iconst_4
bastore
dup
bipush 19
15: iconst_3
bastore
dup
bipush 20
16: bipush 23
bastore
dup
bipush 21
17: iconst_5
bastore
dup
bipush 22
18: iconst_4
bastore
dup
bipush 23
19: iconst_4
bastore
dup
bipush 24
20: iconst_1
bastore
21: astore 1
start local 1 22: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
23: new org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce
dup
ldc "proxyAtStateProgram"
aload 1
iconst_0
bipush 6
invokespecial org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce.<init>:(Ljava/lang/String;[BII)V
24: invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 2
start local 2 25: iconst_m1
putstatic org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce.SideEffect:I
26: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
27: iconst_0
putstatic org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce.SideEffect:I
28: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
29: iconst_1
putstatic org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce.SideEffect:I
30: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
31: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
32: aload 0
aload 2
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
invokevirtual org.graalvm.compiler.truffle.test.MergeExplodeProxyTest.partialEval:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
33: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/graalvm/compiler/truffle/test/MergeExplodeProxyTest;
22 34 1 bytecodes [B
25 34 2 callee Lcom/oracle/truffle/api/CallTarget;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testNoneLiveLoopExitProxy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: bipush 25
newarray 8
dup
iconst_1
1: bipush 42
bastore
dup
iconst_3
2: bipush -2
bastore
dup
iconst_5
3: iconst_1
bastore
dup
bipush 6
4: iconst_2
bastore
dup
bipush 7
5: bipush 6
bastore
dup
bipush 9
6: bipush -2
bastore
dup
bipush 11
7: iconst_1
bastore
dup
bipush 12
8: iconst_2
bastore
dup
bipush 13
9: bipush 6
bastore
dup
bipush 14
10: iconst_3
bastore
dup
bipush 15
11: bipush 18
bastore
dup
bipush 16
12: iconst_5
bastore
dup
bipush 17
13: bipush 10
bastore
dup
bipush 18
14: iconst_4
bastore
dup
bipush 19
15: iconst_3
bastore
dup
bipush 20
16: bipush 23
bastore
dup
bipush 21
17: iconst_5
bastore
dup
bipush 22
18: iconst_4
bastore
dup
bipush 23
19: iconst_4
bastore
dup
bipush 24
20: iconst_1
bastore
21: astore 1
start local 1 22: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
23: new org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$NoneLiveNoProxyTest
dup
ldc "proxyAtStateProgram"
aload 1
iconst_0
bipush 6
invokespecial org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$NoneLiveNoProxyTest.<init>:(Ljava/lang/String;[BII)V
24: invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 2
start local 2 25: iconst_m1
putstatic org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce.SideEffect:I
26: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
27: iconst_0
putstatic org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce.SideEffect:I
28: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
29: iconst_1
putstatic org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce.SideEffect:I
30: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
31: aload 2
iconst_0
anewarray java.lang.Object
invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
32: aload 0
aload 2
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
invokevirtual org.graalvm.compiler.truffle.test.MergeExplodeProxyTest.partialEval:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)V
33: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/graalvm/compiler/truffle/test/MergeExplodeProxyTest;
22 34 1 bytecodes [B
25 34 2 callee Lcom/oracle/truffle/api/CallTarget;
RuntimeVisibleAnnotations:
org.junit.Ignore(value = "GR-21520: Merge explode partial evaluation cannot proxy nodes that are not alive in the framestate of inner loop begins")
org.junit.Test()
}
SourceFile: "MergeExplodeProxyTest.java"
NestMembers:
org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$Bytecode org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$Caller org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$LoopControlVariableProxy org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$NoneLiveNoProxyTest org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$WrongLoopExitMerge
InnerClasses:
public Bytecode = org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$Bytecode of org.graalvm.compiler.truffle.test.MergeExplodeProxyTest
public Caller = org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$Caller of org.graalvm.compiler.truffle.test.MergeExplodeProxyTest
public LoopControlVariableProxy = org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$LoopControlVariableProxy of org.graalvm.compiler.truffle.test.MergeExplodeProxyTest
public NoneLiveNoProxyTest = org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$NoneLiveNoProxyTest of org.graalvm.compiler.truffle.test.MergeExplodeProxyTest
public ProxySameValueOnce = org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$ProxySameValueOnce of org.graalvm.compiler.truffle.test.MergeExplodeProxyTest
public WrongLoopExitMerge = org.graalvm.compiler.truffle.test.MergeExplodeProxyTest$WrongLoopExitMerge of org.graalvm.compiler.truffle.test.MergeExplodeProxyTest