public class org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest extends org.graalvm.compiler.truffle.test.AbstractSplittingStrategyTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
super_class: org.graalvm.compiler.truffle.test.AbstractSplittingStrategyTest
{
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.AbstractSplittingStrategyTest.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;
public void boostBudget();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.createDummyTargetsToBoostGrowingSplitLimit:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Before()
public void testSplitsDirectCalls();
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\tNodeSplittingStrategyTestFactory cannot be resolved\n\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testDoesNotSplitsDirectCalls();
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\tNodeSplittingStrategyTestFactory cannot be resolved\n\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSplitPropagatesThrongSoleCallers();
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\tNodeSplittingStrategyTestFactory cannot be resolved\n\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
private void testPropagatesThroughSoleCallers(org.graalvm.compiler.truffle.runtime.OptimizedCallTarget, java.lang.Object[], java.lang.Object[]);
descriptor: (Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;[Ljava/lang/Object;[Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
new org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode
dup
aload 0
aload 1
invokespecial org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode.<init>:(Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;Lcom/oracle/truffle/api/RootCallTarget;)V
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 4
start local 4 1: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
new org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode
dup
aload 0
aload 4
invokespecial org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode.<init>:(Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;Lcom/oracle/truffle/api/RootCallTarget;)V
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 5
start local 5 2: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 5
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
pop
3: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 5
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
astore 6
start local 6 4: aload 6
aload 2
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
5: ldc "Target needs split before the node went polymorphic"
aload 5
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
6: ldc "Target needs split before the node went polymorphic"
aload 4
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
7: ldc "Target needs split before the node went polymorphic"
aload 1
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
8: aload 6
aload 2
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
9: ldc "Target needs split before the node went polymorphic"
aload 5
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
10: ldc "Target needs split before the node went polymorphic"
aload 4
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
11: ldc "Target needs split before the node went polymorphic"
aload 1
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
12: aload 6
aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
13: ldc "Target does not need split after the node went polymorphic"
aload 5
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
14: ldc "Target does not need split after the node went polymorphic"
aload 4
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
15: ldc "Target does not need split after the node went polymorphic"
aload 1
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
16: aload 6
aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
17: ldc "Target needs split but not split"
aload 6
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
18: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 5
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
astore 7
start local 7 19: aload 7
aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
20: ldc "new call node to \"needs split\" target is not split"
aload 7
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
21: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 4
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
astore 7
22: aload 7
aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
23: ldc "new call node to \"needs split\" target is not split"
aload 7
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
24: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 1
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
astore 7
25: aload 7
aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
26: ldc "new call node to \"needs split\" target is not split"
aload 7
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
27: return
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 28 0 this Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;
0 28 1 turnsPolymorphic Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
0 28 2 firstArgs [Ljava/lang/Object;
0 28 3 secondArgs [Ljava/lang/Object;
1 28 4 callsInner Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
2 28 5 callsCallsInner Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
4 28 6 directCallNode Lcom/oracle/truffle/api/nodes/DirectCallNode;
19 28 7 newCallNode Lcom/oracle/truffle/api/nodes/DirectCallNode;
MethodParameters:
Name Flags
turnsPolymorphic
firstArgs
secondArgs
public void testNoSplitsDirectCallsBecauseFirstExecution();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
new org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$1
dup
invokespecial org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$1.<init>:()V
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 1
start local 1 1: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 1
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
pop
2: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 1
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
pop
3: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 1
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
astore 2
start local 2 4: aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
5: ldc "Target needs split after first execution"
aload 1
invokestatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.getNeedsSplit:(Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;)Ljava/lang/Boolean;
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;
1 7 1 callTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
4 7 2 directCallNode Lcom/oracle/truffle/api/nodes/DirectCallNode;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testIncreaseInPolymorphism();
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\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testUnadopted();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeNode
dup
invokespecial org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeNode.<init>:()V
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeNode.report:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;
1 3 1 node Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeNode;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSoloTarget();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: new org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeRootNode
dup
invokespecial org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeRootNode.<init>:()V
astore 1
start local 1 1: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 1
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 2
start local 2 2: aload 2
getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.noArguments:[Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 1
invokevirtual org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeRootNode.report:()V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;
1 5 1 rootNode Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeRootNode;
2 5 2 callTarget Lcom/oracle/truffle/api/RootCallTarget;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSplitsCalledAfterSplit();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: new org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallableOnlyOnceRootNode
dup
invokespecial org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallableOnlyOnceRootNode.<init>:()V
astore 1
start local 1 1: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 1
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 2
start local 2 2: aload 2
getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.noArguments:[Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
3: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
new org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode
dup
aload 0
aload 2
invokespecial org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode.<init>:(Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;Lcom/oracle/truffle/api/RootCallTarget;)V
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 3
start local 3 4: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
new org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode
dup
aload 0
aload 2
invokespecial org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode.<init>:(Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest;Lcom/oracle/truffle/api/RootCallTarget;)V
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
astore 4
start local 4 5: aload 3
getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.noArguments:[Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 4
getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.noArguments:[Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 1
iconst_1
putfield org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallableOnlyOnceRootNode.active:Z
8: aload 1
invokevirtual org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallableOnlyOnceRootNode.report:()V
9: aload 3
getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.noArguments:[Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 4
getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.noArguments:[Ljava/lang/Object;
invokeinterface com.oracle.truffle.api.RootCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
11: return
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/truffle/test/NodeSplittingStrategyTest;
1 12 1 rootNode Lorg/graalvm/compiler/truffle/test/NodeSplittingStrategyTest$CallableOnlyOnceRootNode;
2 12 2 reportsPolymorphism Lcom/oracle/truffle/api/RootCallTarget;
4 12 3 callsInner1 Lcom/oracle/truffle/api/RootCallTarget;
5 12 4 callsInner2 Lcom/oracle/truffle/api/RootCallTarget;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMegamorpic();
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\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
private static void testMegamorphicHelper(com.oracle.truffle.api.CallTarget, int[]);
descriptor: (Lcom/oracle/truffle/api/CallTarget;[I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 0
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
astore 2
start local 2 1: getstatic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest.runtime:Lorg/graalvm/compiler/truffle/runtime/GraalTruffleRuntime;
aload 0
invokevirtual org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.createDirectCallNode:(Lcom/oracle/truffle/api/CallTarget;)Lcom/oracle/truffle/api/nodes/DirectCallNode;
astore 3
start local 3 2: aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
iconst_0
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 2
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
4: aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
5: aload 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
iconst_1
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 2
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
7: aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
8: aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
iconst_2
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 2
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
10: aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
11: aload 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
iconst_3
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 2
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertFalse:(Z)V
13: aload 3
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
14: aload 2
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
iconst_4
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 2
invokevirtual com.oracle.truffle.api.nodes.DirectCallNode.isCallTargetCloned:()Z
invokestatic org.junit.Assert.assertTrue:(Z)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 callTarget Lcom/oracle/truffle/api/CallTarget;
0 17 1 args [I
1 17 2 callNode1 Lcom/oracle/truffle/api/nodes/DirectCallNode;
2 17 3 callNode2 Lcom/oracle/truffle/api/nodes/DirectCallNode;
MethodParameters:
Name Flags
callTarget
args
public void testTwoMegamorpicSpec1();
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\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testTwoMegamorpicSpec2();
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\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testPolymorphicInPolyAndMegamorpic();
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\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMegamorphicInPolyAndMegamorpic();
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\tNodeSplittingStrategyTestFactory cannot be resolved\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/truffle/test/NodeSplittingStrategyTest;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "NodeSplittingStrategyTest.java"
NestMembers:
org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$1 org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallableOnlyOnceRootNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeRootNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$HasInlineCacheNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$Megamorpic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$PolymorphicAndMegamorpic org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TurnsPolymorphicOnZeroButClassIsExcludedNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TurnsPolymorphicOnZeroButSpecializationIsExcludedNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TurnsPolymorphicOnZeroNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TwoDummiesAndAnotherNode org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TwoMegamorpicSpec
InnerClasses:
org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$1
CallableOnlyOnceRootNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallableOnlyOnceRootNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
CallsInnerNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$CallsInnerNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
ExposesReportPolymorphicSpecializeNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
ExposesReportPolymorphicSpecializeRootNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$ExposesReportPolymorphicSpecializeRootNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
abstract HasInlineCacheNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$HasInlineCacheNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
abstract Megamorpic = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$Megamorpic of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
abstract PolymorphicAndMegamorpic = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$PolymorphicAndMegamorpic of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
abstract TurnsPolymorphicOnZeroButClassIsExcludedNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TurnsPolymorphicOnZeroButClassIsExcludedNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
abstract TurnsPolymorphicOnZeroButSpecializationIsExcludedNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TurnsPolymorphicOnZeroButSpecializationIsExcludedNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
abstract TurnsPolymorphicOnZeroNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TurnsPolymorphicOnZeroNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
TwoDummiesAndAnotherNode = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TwoDummiesAndAnotherNode of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest
abstract TwoMegamorpicSpec = org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest$TwoMegamorpicSpec of org.graalvm.compiler.truffle.test.NodeSplittingStrategyTest