public class org.graalvm.compiler.truffle.test.MultiTierCompilationTest 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.MultiTierCompilationTest
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/MultiTierCompilationTest;
private static void boundary();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=0, locals=0, args_size=0
0: return
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
public void testDefault();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.CompileImmediately"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.BackgroundCompilation"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.MultiTier"
1: ldc "true"
2: invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
3: ldc "engine.FirstTierInliningPolicy"
ldc "None"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.Splitting"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.FirstTierCompilationThreshold"
ldc "100"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
4: ldc "engine.CompilationThreshold"
ldc "1000"
5: invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
6: invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
7: invokevirtual org.graalvm.compiler.truffle.test.MultiTierCompilationTest.setupContext:(Lorg/graalvm/polyglot/Context;)V
8: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierCalleeNode
dup
invokespecial org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierCalleeNode.<init>:()V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 1
start local 1 9: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierRootNode
dup
aload 1
invokespecial org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierRootNode.<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;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 2
start local 2 10: aload 1
getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.FirstTierCompilationThreshold:Lorg/graalvm/options/OptionKey;
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 3
start local 3 11: aload 1
getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.CompilationThreshold:Lorg/graalvm/options/OptionKey;
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 4
start local 4 12: ldc "root:interpreter"
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: iconst_0
istore 5
start local 5 14: goto 17
15: StackMap locals: org.graalvm.compiler.truffle.test.MultiTierCompilationTest org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.truffle.runtime.OptimizedCallTarget int int int
StackMap stack:
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
16: iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
iload 3
if_icmplt 15
end local 5 18: ldc "callee:interpreter"
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: iconst_0
istore 5
start local 5 20: goto 23
21: StackMap locals:
StackMap stack:
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
22: iinc 5 1
StackMap locals:
StackMap stack:
23: iload 5
iload 3
if_icmplt 21
end local 5 24: ldc "callee:first-tier"
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
25: iconst_0
istore 5
start local 5 26: goto 29
27: StackMap locals:
StackMap stack:
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
28: iinc 5 1
StackMap locals:
StackMap stack:
29: iload 5
iload 4
if_icmplt 27
end local 5 30: ldc "callee:inlined"
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
31: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/graalvm/compiler/truffle/test/MultiTierCompilationTest;
9 32 1 calleeTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
10 32 2 multiTierTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
11 32 3 firstTierCompilationThreshold I
12 32 4 compilationThreshold I
14 18 5 i I
20 24 5 i I
26 30 5 i I
RuntimeVisibleAnnotations:
org.junit.Test()
public void testFirstTierInlining();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.CompileImmediately"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.BackgroundCompilation"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.MultiTier"
1: ldc "true"
2: invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
3: ldc "engine.FirstTierInliningPolicy"
ldc "Default"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.Splitting"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.FirstTierCompilationThreshold"
ldc "100"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
4: ldc "engine.CompilationThreshold"
ldc "1000"
5: invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
6: invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
7: invokevirtual org.graalvm.compiler.truffle.test.MultiTierCompilationTest.setupContext:(Lorg/graalvm/polyglot/Context;)V
8: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierCalleeNode
dup
invokespecial org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierCalleeNode.<init>:()V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 1
start local 1 9: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierRootNode
dup
aload 1
invokespecial org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierRootNode.<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;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 2
start local 2 10: aload 1
getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.FirstTierCompilationThreshold:Lorg/graalvm/options/OptionKey;
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 3
start local 3 11: aload 1
getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.CompilationThreshold:Lorg/graalvm/options/OptionKey;
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 4
start local 4 12: ldc "root:interpreter"
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: iconst_0
istore 5
start local 5 14: goto 17
15: StackMap locals: org.graalvm.compiler.truffle.test.MultiTierCompilationTest org.graalvm.compiler.truffle.runtime.OptimizedCallTarget org.graalvm.compiler.truffle.runtime.OptimizedCallTarget int int int
StackMap stack:
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
16: iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
iload 3
if_icmplt 15
end local 5 18: ldc "callee:first-tier"
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: iconst_0
istore 5
start local 5 20: goto 23
21: StackMap locals:
StackMap stack:
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
22: iinc 5 1
StackMap locals:
StackMap stack:
23: iload 5
iload 4
if_icmplt 21
end local 5 24: ldc "callee:inlined"
aload 2
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
25: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/graalvm/compiler/truffle/test/MultiTierCompilationTest;
9 26 1 calleeTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
10 26 2 multiTierTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
11 26 3 firstTierCompilationThreshold I
12 26 4 compilationThreshold I
14 18 5 i I
20 24 5 i I
RuntimeVisibleAnnotations:
org.junit.Test()
public void testWhenCalleeCompiledFirst();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.CompileImmediately"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.BackgroundCompilation"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.MultiTier"
1: ldc "true"
2: invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
3: ldc "engine.FirstTierInliningPolicy"
ldc "None"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.Splitting"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.FirstTierCompilationThreshold"
ldc "100"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
4: ldc "engine.CompilationThreshold"
ldc "1000"
5: invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
6: invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
7: invokevirtual org.graalvm.compiler.truffle.test.MultiTierCompilationTest.setupContext:(Lorg/graalvm/polyglot/Context;)V
8: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierCalleeNode
dup
invokespecial org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierCalleeNode.<init>:()V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 1
start local 1 9: aload 1
getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.FirstTierCompilationThreshold:Lorg/graalvm/options/OptionKey;
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 2
start local 2 10: aload 1
getstatic org.graalvm.compiler.truffle.options.PolyglotCompilerOptions.CompilationThreshold:Lorg/graalvm/options/OptionKey;
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.getOptionValue:(Lorg/graalvm/options/OptionKey;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 3
start local 3 11: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
new org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithFrequentCalleeRootNode
dup
aload 1
iload 2
invokespecial org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithFrequentCalleeRootNode.<init>:(Lcom/oracle/truffle/api/CallTarget;I)V
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 4
start local 4 12: ldc "root:interpreter"
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
13: iconst_0
istore 5
start local 5 14: goto 17
15: StackMap locals: org.graalvm.compiler.truffle.test.MultiTierCompilationTest org.graalvm.compiler.truffle.runtime.OptimizedCallTarget int int org.graalvm.compiler.truffle.runtime.OptimizedCallTarget int
StackMap stack:
new java.lang.StringBuilder
dup
ldc "iteration: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "root:interpreter"
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
16: iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
iload 2
iconst_2
isub
if_icmplt 15
end local 5 18: ldc "callee:first-tier"
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
19: ldc 10
iload 3
iload 2
idiv
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
20: iconst_0
istore 5
start local 5 21: goto 24
22: StackMap locals:
StackMap stack:
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
23: iinc 5 1
StackMap locals:
StackMap stack:
24: iload 5
iload 3
iload 2
idiv
if_icmplt 22
end local 5 25: ldc "callee:second-tier-root"
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
26: iconst_0
istore 5
start local 5 27: goto 30
28: StackMap locals:
StackMap stack:
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
29: iinc 5 1
StackMap locals:
StackMap stack:
30: iload 5
iload 3
if_icmplt 28
end local 5 31: ldc "callee:inlined"
aload 4
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
32: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/graalvm/compiler/truffle/test/MultiTierCompilationTest;
9 33 1 calleeTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
10 33 2 firstTierCompilationThreshold I
11 33 3 compilationThreshold I
12 33 4 multiTierTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
14 18 5 i I
21 25 5 i I
27 31 5 i I
RuntimeVisibleAnnotations:
org.junit.Test()
public void testLoop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=1
start local 0 0: bipush 100
istore 1
start local 1 1: sipush 1000
istore 2
start local 2 2: aload 0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.newBuilder:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
iconst_1
invokevirtual org.graalvm.polyglot.Context$Builder.allowExperimentalOptions:(Z)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.CompileImmediately"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.BackgroundCompilation"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.MultiTier"
3: ldc "true"
4: invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
5: ldc "engine.FirstTierInliningPolicy"
ldc "None"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.Splitting"
ldc "false"
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
ldc "engine.FirstTierCompilationThreshold"
6: iload 1
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
7: invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
8: ldc "engine.CompilationThreshold"
iload 2
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokevirtual org.graalvm.polyglot.Context$Builder.option:(Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Context$Builder;
invokevirtual org.graalvm.polyglot.Context$Builder.build:()Lorg/graalvm/polyglot/Context;
9: invokevirtual org.graalvm.compiler.truffle.test.MultiTierCompilationTest.setupContext:(Lorg/graalvm/polyglot/Context;)V
10: new org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierLoopBodyNode
dup
iload 1
invokespecial org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierLoopBodyNode.<init>:(I)V
astore 3
start local 3 11: new org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithLoopRootNode
dup
aload 3
invokespecial org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithLoopRootNode.<init>:(Lorg/graalvm/compiler/truffle/test/MultiTierCompilationTest$MultiTierLoopBodyNode;)V
astore 4
start local 4 12: invokestatic com.oracle.truffle.api.Truffle.getRuntime:()Lcom/oracle/truffle/api/TruffleRuntime;
aload 4
invokeinterface com.oracle.truffle.api.TruffleRuntime.createCallTarget:(Lcom/oracle/truffle/api/nodes/RootNode;)Lcom/oracle/truffle/api/RootCallTarget;
checkcast org.graalvm.compiler.truffle.runtime.OptimizedCallTarget
astore 5
start local 5 13: ldc "break:interpreter"
aload 5
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
14: ldc "break:first-tier"
aload 5
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
15: iconst_0
istore 6
start local 6 16: goto 19
17: StackMap locals: org.graalvm.compiler.truffle.test.MultiTierCompilationTest int int org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierLoopBodyNode org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithLoopRootNode org.graalvm.compiler.truffle.runtime.OptimizedCallTarget int
StackMap stack:
new java.lang.StringBuilder
dup
ldc "at iteration "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "break:first-tier"
aload 5
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
18: iinc 6 1
StackMap locals:
StackMap stack:
19: iload 6
iload 2
iload 1
idiv
iconst_2
isub
if_icmplt 17
end local 6 20: aload 5
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
pop
21: ldc "break:second-tier"
aload 5
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
22: ldc 9
aload 4
getfield org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithLoopRootNode.firstTierCallCount:I
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
23: 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 24 0 this Lorg/graalvm/compiler/truffle/test/MultiTierCompilationTest;
1 24 1 firstThreshold I
2 24 2 secondThreshold I
11 24 3 body Lorg/graalvm/compiler/truffle/test/MultiTierCompilationTest$MultiTierLoopBodyNode;
12 24 4 rootNode Lorg/graalvm/compiler/truffle/test/MultiTierCompilationTest$MultiTierWithLoopRootNode;
13 24 5 rootTarget Lorg/graalvm/compiler/truffle/runtime/OptimizedCallTarget;
16 20 6 i I
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "MultiTierCompilationTest.java"
NestMembers:
org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierCalleeNode org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierLoopBodyNode org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierRootNode org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithFrequentCalleeRootNode org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithLoopRootNode
InnerClasses:
public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
public MultiTierCalleeNode = org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierCalleeNode of org.graalvm.compiler.truffle.test.MultiTierCompilationTest
private final MultiTierLoopBodyNode = org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierLoopBodyNode of org.graalvm.compiler.truffle.test.MultiTierCompilationTest
private MultiTierRootNode = org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierRootNode of org.graalvm.compiler.truffle.test.MultiTierCompilationTest
private MultiTierWithFrequentCalleeRootNode = org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithFrequentCalleeRootNode of org.graalvm.compiler.truffle.test.MultiTierCompilationTest
private MultiTierWithLoopRootNode = org.graalvm.compiler.truffle.test.MultiTierCompilationTest$MultiTierWithLoopRootNode of org.graalvm.compiler.truffle.test.MultiTierCompilationTest
public final Builder = org.graalvm.polyglot.Context$Builder of org.graalvm.polyglot.Context