public class com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
super_class: java.lang.Object
{
private static final int THREADS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 25
private static final int ITERATIONS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
public void testMultithreadedMergeInOrder();
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\tTestNodeFactory 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 Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMultithreadedMergeReverse();
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\tTestNodeFactory 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 Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMultithreadedMergeCachedInOrder();
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\tTestCachedNodeFactory 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 Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMultithreadedMergeCachedTwoEntries();
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\tTestCachedNodeFactory 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 Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void testMultithreadedMergeCachedThreeEntries();
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\tTestCachedNodeFactory 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 Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
private static <T extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode> void multithreadedMerge(com.oracle.truffle.api.dsl.NodeFactory<T>, com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions, );
descriptor: (Lcom/oracle/truffle/api/dsl/NodeFactory;Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest$Executions;[I)V
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=15, locals=17, args_size=3
start local 0 start local 1 start local 2 0: ldc 3
aload 2
arraylength
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
1: aload 0
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createRoot:(Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;
astore 3
start local 3 2: new java.util.concurrent.CountDownLatch
dup
bipush 25
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 4
start local 4 3: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 5
start local 5 4: new java.util.concurrent.CountDownLatch
dup
bipush 25
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 6
start local 6 5: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 7
start local 7 6: new java.util.concurrent.CountDownLatch
dup
bipush 25
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 8
start local 8 7: new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 9
start local 9 8: new java.util.concurrent.CountDownLatch
dup
bipush 25
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
astore 10
start local 10 9: bipush 25
anewarray java.lang.Thread
astore 11
start local 11 10: iconst_0
istore 12
start local 12 11: goto 15
12: StackMap locals: com.oracle.truffle.api.dsl.NodeFactory com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions int[] com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.lang.Thread[] int
StackMap stack:
aload 11
iload 12
new java.lang.Thread
dup
new com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$1
dup
aload 4
aload 5
aload 3
aload 1
aload 6
aload 7
aload 8
aload 9
aload 10
invokespecial com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$1.<init>:(Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest$Executions;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;)V
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
aastore
13: aload 11
iload 12
aaload
invokevirtual java.lang.Thread.start:()V
14: iinc 12 1
StackMap locals:
StackMap stack:
15: iload 12
aload 11
arraylength
if_icmplt 12
end local 12 16: aload 3
invokevirtual com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.getNode:()Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;
astore 12
start local 12 17: aload 12
aload 2
iconst_0
invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.assertState:(Lcom/oracle/truffle/api/nodes/Node;[II)V
18: aload 4
invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.await:(Ljava/util/concurrent/CountDownLatch;)V
19: aload 5
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
20: aload 6
invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.await:(Ljava/util/concurrent/CountDownLatch;)V
21: aload 12
aload 2
iconst_1
invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.assertState:(Lcom/oracle/truffle/api/nodes/Node;[II)V
22: aload 7
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
23: aload 8
invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.await:(Ljava/util/concurrent/CountDownLatch;)V
24: aload 12
aload 2
iconst_2
invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.assertState:(Lcom/oracle/truffle/api/nodes/Node;[II)V
25: aload 9
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
26: aload 10
invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.await:(Ljava/util/concurrent/CountDownLatch;)V
27: aload 12
aload 2
iconst_3
invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.assertState:(Lcom/oracle/truffle/api/nodes/Node;[II)V
28: aload 11
dup
astore 16
arraylength
istore 15
iconst_0
istore 14
goto 35
StackMap locals: com.oracle.truffle.api.dsl.NodeFactory com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions int[] com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.lang.Thread[] com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode top int int java.lang.Thread[]
StackMap stack:
29: aload 16
iload 14
aaload
astore 13
start local 13 30: aload 13
invokevirtual java.lang.Thread.join:()V
31: goto 34
StackMap locals: com.oracle.truffle.api.dsl.NodeFactory com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions int[] com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.lang.Thread[] com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode java.lang.Thread int int java.lang.Thread[]
StackMap stack: java.lang.InterruptedException
32: pop
33: ldc "interrupted"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
end local 13 34: StackMap locals: com.oracle.truffle.api.dsl.NodeFactory com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions int[] com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.lang.Thread[] com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode top int int java.lang.Thread[]
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
35: iload 14
iload 15
if_icmplt 29
36: return
end local 12 end local 11 end local 10 end local 9 end local 8 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 37 0 factory Lcom/oracle/truffle/api/dsl/NodeFactory<TT;>;
0 37 1 executions Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest$Executions;
0 37 2 order [I
2 37 3 node Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<TT;>;
3 37 4 threadsStarted Ljava/util/concurrent/CountDownLatch;
4 37 5 beforeFirst Ljava/util/concurrent/CountDownLatch;
5 37 6 executedFirst Ljava/util/concurrent/CountDownLatch;
6 37 7 beforeSecond Ljava/util/concurrent/CountDownLatch;
7 37 8 executedSecond Ljava/util/concurrent/CountDownLatch;
8 37 9 beforeThird Ljava/util/concurrent/CountDownLatch;
9 37 10 executedThird Ljava/util/concurrent/CountDownLatch;
10 37 11 threads [Ljava/lang/Thread;
11 16 12 i I
17 37 12 checkedNode TT;
30 34 13 thread Ljava/lang/Thread;
Exception table:
from to target type
30 31 32 Class java.lang.InterruptedException
Exceptions:
throws java.lang.Exception
Signature: <T:Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>(Lcom/oracle/truffle/api/dsl/NodeFactory<TT;>;Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest$Executions;[I)V
MethodParameters:
Name Flags
factory
executions final
order
private static void assertState(com.oracle.truffle.api.nodes.Node, int[], int);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;[II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_3
invokestatic com.oracle.truffle.api.dsl.test.StateBitTest.assertStateFields:(Lcom/oracle/truffle/api/nodes/Node;I)Ljava/util/BitSet;
astore 3
start local 3 1: aload 3
invokevirtual java.util.BitSet.isEmpty:()Z
ifeq 2
iconst_0
goto 3
StackMap locals: java.util.BitSet
StackMap stack:
2: aload 3
invokevirtual java.util.BitSet.toLongArray:()[J
iconst_0
laload
l2i
StackMap locals:
StackMap stack: int
3: istore 4
start local 4 4: aload 1
iconst_0
iload 2
invokestatic java.util.Arrays.sort:([III)V
5: iconst_0
istore 5
start local 5 6: iconst_0
istore 6
start local 6 7: goto 10
8: StackMap locals: int int int
StackMap stack:
iload 5
iconst_1
aload 1
iload 6
iaload
iconst_1
isub
ishl
ior
istore 5
9: iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
iload 2
if_icmplt 8
end local 6 11: iload 5
i2l
iload 4
bipush 7
iand
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
12: 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 13 0 node Lcom/oracle/truffle/api/nodes/Node;
0 13 1 expectedOrder [I
0 13 2 checkedIndices I
1 13 3 set Ljava/util/BitSet;
4 13 4 state I
6 13 5 mask I
7 11 6 i I
MethodParameters:
Name Flags
node
expectedOrder
checkedIndices
private static void await(java.util.concurrent.CountDownLatch);
descriptor: (Ljava/util/concurrent/CountDownLatch;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.CountDownLatch.await:()V
1: goto 4
StackMap locals:
StackMap stack: java.lang.InterruptedException
2: pop
3: ldc "interrupted"
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 latch Ljava/util/concurrent/CountDownLatch;
Exception table:
from to target type
0 1 2 Class java.lang.InterruptedException
MethodParameters:
Name Flags
latch final
}
SourceFile: "MergeSpecializationsTest.java"
NestMembers:
com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$1 com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$TestCachedNode com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$TestNode
InnerClasses:
com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$1
private Executions = com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions of com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
abstract TestCachedNode = com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$TestCachedNode of com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
abstract TestNode = com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$TestNode of com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
public TestRootNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode of com.oracle.truffle.api.dsl.test.TypeSystemTest
public ValueNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode of com.oracle.truffle.api.dsl.test.TypeSystemTest