public class org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest 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.replacements.test.DeoptimizeOnExceptionTest
super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
static int ;
descriptor: I
flags: (0x0008) ACC_STATIC
private static java.lang.Object m;
descriptor: Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static long ct;
descriptor: J
flags: (0x0008) ACC_STATIC
private static java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final byte[] clazz;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.m:Ljava/lang/Object;
1: ldc 9223372036854775807
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.ct:J
2: ldc "t/TestJSR"
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.name:Ljava/lang/String;
3: invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.makeClazz:()[B
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.clazz:[B
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
1: aload 0
invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getInitialOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.createSuites:(Lorg/graalvm/compiler/options/OptionValues;)Lorg/graalvm/compiler/phases/tiers/Suites;
invokevirtual org.graalvm.compiler.phases.tiers.Suites.getHighTier:()Lorg/graalvm/compiler/phases/PhaseSuite;
ldc Lorg/graalvm/compiler/phases/common/AbstractInliningPhase;
invokevirtual org.graalvm.compiler.phases.PhaseSuite.findPhase:(Ljava/lang/Class;)Ljava/util/ListIterator;
invokeinterface java.util.ListIterator.remove:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/replacements/test/DeoptimizeOnExceptionTest;
private static void raiseException(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 m1 Ljava/lang/String;
0 1 1 m2 Ljava/lang/String;
0 1 2 m3 Ljava/lang/String;
0 1 3 m4 Ljava/lang/String;
0 1 4 m5 Ljava/lang/String;
MethodParameters:
Name Flags
m1
m2
m3
m4
m5
public void test1();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
ldc "test1Snippet"
iconst_5
anewarray java.lang.Object
dup
iconst_0
ldc "m1"
aastore
dup
iconst_1
ldc "m2"
aastore
dup
iconst_2
ldc "m3"
aastore
dup
iconst_3
ldc "m4"
aastore
dup
iconst_4
ldc "m5"
aastore
invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/test/DeoptimizeOnExceptionTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public static java.lang.String test1Snippet(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
ifnull 2
1: aload 0
aload 1
aload 2
aload 3
aload 4
invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.raiseException:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 m1 Ljava/lang/String;
0 3 1 m2 Ljava/lang/String;
0 3 2 m3 Ljava/lang/String;
0 3 3 m4 Ljava/lang/String;
0 3 4 m5 Ljava/lang/String;
MethodParameters:
Name Flags
m1
m2
m3
m4
m5
public void test2();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "test2Snippet"
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/replacements/test/DeoptimizeOnExceptionTest;
RuntimeVisibleAnnotations:
org.junit.Test()
public java.lang.String test2Snippet();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: new org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest$MyClassLoader
dup
invokespecial org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest$MyClassLoader.<init>:()V
astore 1
start local 1 1: aload 1
getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.name:Ljava/lang/String;
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
start local 2 2: aload 2
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Runnable
astore 3
start local 3 3: ldc 9223372036854775807
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.ct:J
4: iconst_0
istore 4
start local 4 5: goto 8
6: StackMap locals: org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest java.lang.ClassLoader java.lang.Class java.lang.Runnable int
StackMap stack:
aload 3
invokeinterface java.lang.Runnable.run:()V
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
bipush 100
if_icmplt 6
end local 4 9: aload 0
aload 2
ldc "run"
invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getResolvedJavaMethod:(Ljava/lang/Class;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 4
start local 4 10: aload 0
aload 4
invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/code/InstalledCode;
pop
11: lconst_0
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.ct:J
12: aload 3
invokeinterface java.lang.Runnable.run:()V
end local 4 end local 3 end local 2 end local 1 13: goto 17
StackMap locals: org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest
StackMap stack: java.lang.Throwable
14: astore 1
start local 1 15: aload 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
16: invokestatic org.junit.Assert.fail:()V
end local 1 17: StackMap locals:
StackMap stack:
ldc "SUCCESS"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/graalvm/compiler/replacements/test/DeoptimizeOnExceptionTest;
1 13 1 testCl Ljava/lang/ClassLoader;
2 13 2 c Ljava/lang/Class<Ljava/lang/Runnable;>;
3 13 3 r Ljava/lang/Runnable;
5 9 4 i I
10 13 4 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
15 17 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 13 14 Class java.lang.Throwable
Exceptions:
throws java.lang.Exception
public void test3();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=7, args_size=1
start local 0 0: ldc "Only works on jdk8 right now"
getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
bipush 8
if_icmpgt 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.String
1: iconst_0
StackMap locals: org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest
StackMap stack: java.lang.String int
2: invokestatic org.junit.Assume.assumeTrue:(Ljava/lang/String;Z)V
3: aload 0
ldc "test3Snippet"
invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getResolvedJavaMethod:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 1
start local 1 4: iconst_0
istore 2
start local 2 5: goto 25
6: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod int
StackMap stack:
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getProfilingInfo:()Ljdk/vm/ci/meta/ProfilingInfo;
getstatic jdk.vm.ci.meta.DeoptimizationReason.NotCompiledExceptionHandler:Ljdk/vm/ci/meta/DeoptimizationReason;
invokeinterface jdk.vm.ci.meta.ProfilingInfo.getDeoptimizationCount:(Ljdk/vm/ci/meta/DeoptimizationReason;)I
ifeq 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 4
start local 4 9: aload 0
aload 1
aconst_null
iconst_0
iconst_1
new org.graalvm.compiler.options.OptionValues
dup
invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getInitialOptions:()Lorg/graalvm/compiler/options/OptionValues;
getstatic org.graalvm.compiler.core.phases.HighTier$Options.Inline:Lorg/graalvm/compiler/options/OptionKey;
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
iconst_0
anewarray java.lang.Object
invokespecial org.graalvm.compiler.options.OptionValues.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/Object;[Ljava/lang/Object;)V
invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph;ZZLorg/graalvm/compiler/options/OptionValues;)Ljdk/vm/ci/code/InstalledCode;
astore 5
start local 5 10: aload 5
invokevirtual jdk.vm.ci.code.InstalledCode.isValid:()Z
invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.assertTrue:(Z)V
11: new org.graalvm.compiler.core.test.GraalCompilerTest$Result
dup
aload 5
iconst_1
anewarray java.lang.Object
dup
iconst_0
iconst_0
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
invokevirtual jdk.vm.ci.code.InstalledCode.executeVarargs:([Ljava/lang/Object;)Ljava/lang/Object;
aconst_null
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest$Result.<init>:(Ljava/lang/Object;Ljava/lang/Throwable;)V
astore 3
start local 3 12: goto 15
end local 3 StackMap locals: org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest jdk.vm.ci.meta.ResolvedJavaMethod int top int jdk.vm.ci.code.InstalledCode
StackMap stack: java.lang.Exception
13: astore 6
start local 6 14: new org.graalvm.compiler.core.test.GraalCompilerTest$Result
dup
aconst_null
aload 6
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest$Result.<init>:(Ljava/lang/Object;Ljava/lang/Throwable;)V
astore 3
end local 6 start local 3 15: StackMap locals: org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest jdk.vm.ci.meta.ResolvedJavaMethod int org.graalvm.compiler.core.test.GraalCompilerTest$Result int jdk.vm.ci.code.InstalledCode
StackMap stack:
iload 2
ifle 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: iload 4
if_icmpne 18
iconst_1
goto 19
StackMap locals:
StackMap stack:
18: iconst_0
StackMap locals:
StackMap stack: int
19: ldc "expect compiled code to stay around after the first iteration"
iconst_0
anewarray java.lang.Object
invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.assertTrue:(ZLjava/lang/String;[Ljava/lang/Object;)V
20: aload 0
new org.graalvm.compiler.core.test.GraalCompilerTest$Result
dup
iload 4
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aconst_null
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest$Result.<init>:(Ljava/lang/Object;Ljava/lang/Throwable;)V
aload 3
invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.assertEquals:(Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;)V
21: iload 4
aload 5
invokevirtual jdk.vm.ci.code.InstalledCode.isValid:()Z
if_icmpne 22
iconst_1
goto 23
StackMap locals:
StackMap stack:
22: iconst_0
StackMap locals:
StackMap stack: int
23: invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.assertTrue:(Z)V
end local 5 end local 4 end local 3 24: iinc 2 1
StackMap locals:
StackMap stack:
25: iload 2
iconst_2
if_icmplt 6
end local 2 26: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/graalvm/compiler/replacements/test/DeoptimizeOnExceptionTest;
4 27 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
5 26 2 i I
12 13 3 actual Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
15 24 3 actual Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
9 24 4 expectedCompiledCode Z
10 24 5 code Ljdk/vm/ci/code/InstalledCode;
14 15 6 e Ljava/lang/Exception;
Exception table:
from to target type
11 12 13 Class java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
protected org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo bytecodeParserShouldInlineInvoke(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode[]);
descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
ldc "throwException"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
1: aload 1
invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getProfilingInfo:()Ljdk/vm/ci/meta/ProfilingInfo;
getstatic jdk.vm.ci.meta.DeoptimizationReason.NotCompiledExceptionHandler:Ljdk/vm/ci/meta/DeoptimizationReason;
invokeinterface jdk.vm.ci.meta.ProfilingInfo.getDeoptimizationCount:(Ljdk/vm/ci/meta/DeoptimizationReason;)I
ifeq 3
2: getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_WITH_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
areturn
3: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_NO_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.bytecodeParserShouldInlineInvoke:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;[Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
areturn
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/replacements/test/DeoptimizeOnExceptionTest;
0 5 1 b Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
0 5 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 5 3 args [Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
b
method
args
private static void throwException();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.Exception
dup
invokespecial java.lang.Exception.<init>:()V
athrow
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
public static boolean test3Snippet(boolean);
descriptor: (Z)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: iconst_1
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.footprint:I
1: invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.throwException:()V
2: goto 7
StackMap locals:
StackMap stack: java.lang.Exception
3: astore 1
start local 1 4: iconst_2
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.footprint:I
5: iload 0
ifeq 7
6: aload 1
athrow
end local 1 7: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.api.directives.GraalDirectives.inCompiledCode:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 rethrowException Z
4 7 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 2 3 Class java.lang.Exception
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
rethrowException
public static void methodB();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: new java.util.Random
dup
invokestatic java.lang.System.currentTimeMillis:()J
invokespecial java.util.Random.<init>:(J)V
astore 0
start local 0 1: StackMap locals: java.util.Random
StackMap stack:
aload 0
invokevirtual java.util.Random.nextFloat:()F
ldc 0.03
fcmpl
ifgt 1
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 r Ljava/util/Random;
public static void methodA();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: new java.util.Random
dup
invokestatic java.lang.System.currentTimeMillis:()J
invokespecial java.util.Random.<init>:(J)V
astore 0
start local 0 1: StackMap locals: java.util.Random
StackMap stack:
aload 0
invokevirtual java.util.Random.nextDouble:()D
ldc 0.05
dcmpl
ifgt 1
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 3 0 r Ljava/util/Random;
public static java.lang.Object getM();
descriptor: ()Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.ct:J
dup2
lconst_1
lsub
putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.ct:J
lconst_0
lcmp
ifle 2
1: getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.m:Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
LocalVariableTable:
Start End Slot Name Signature
private static byte[] makeClazz();
descriptor: ()[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=6, args_size=0
0: ldc Lorg/graalvm/compiler/replacements/test/DeoptimizeOnExceptionTest;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 0
start local 0 1: new org.objectweb.asm.ClassWriter
dup
iconst_0
invokespecial org.objectweb.asm.ClassWriter.<init>:(I)V
astore 1
start local 1 2: aload 1
bipush 49
iconst_1
3: ldc "t/TestJSR"
aconst_null
ldc "java/lang/Object"
4: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "java/lang/Runnable"
aastore
5: invokevirtual org.objectweb.asm.ClassWriter.visit:(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
6: aload 1
iconst_1
ldc "<init>"
ldc "()V"
aconst_null
iconst_0
anewarray java.lang.String
invokevirtual org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lorg/objectweb/asm/MethodVisitor;
astore 2
start local 2 7: aload 2
invokevirtual org.objectweb.asm.MethodVisitor.visitCode:()V
8: aload 2
bipush 25
iconst_0
invokevirtual org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
9: aload 2
sipush 183
ldc "java/lang/Object"
ldc "<init>"
ldc "()V"
iconst_0
invokevirtual org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
10: aload 2
sipush 177
invokevirtual org.objectweb.asm.MethodVisitor.visitInsn:(I)V
11: aload 2
bipush 10
bipush 10
invokevirtual org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
12: aload 2
invokevirtual org.objectweb.asm.MethodVisitor.visitEnd:()V
13: aload 1
iconst_1
ldc "run"
ldc "()V"
aconst_null
aconst_null
invokevirtual org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lorg/objectweb/asm/MethodVisitor;
astore 2
14: aload 2
invokevirtual org.objectweb.asm.MethodVisitor.visitCode:()V
15: aload 2
sipush 184
aload 0
ldc "getM"
ldc "()Ljava/lang/Object;"
iconst_0
invokevirtual org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
16: new org.objectweb.asm.Label
dup
invokespecial org.objectweb.asm.Label.<init>:()V
astore 3
start local 3 17: aload 2
sipush 168
aload 3
invokevirtual org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILorg/objectweb/asm/Label;)V
18: aload 2
sipush 177
invokevirtual org.objectweb.asm.MethodVisitor.visitInsn:(I)V
19: aload 2
aload 3
invokevirtual org.objectweb.asm.MethodVisitor.visitLabel:(Lorg/objectweb/asm/Label;)V
20: aload 2
bipush 58
iconst_1
invokevirtual org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
21: new org.objectweb.asm.Label
dup
invokespecial org.objectweb.asm.Label.<init>:()V
astore 4
start local 4 22: new org.objectweb.asm.Label
dup
invokespecial org.objectweb.asm.Label.<init>:()V
astore 5
start local 5 23: aload 2
sipush 184
ldc "java/lang/System"
ldc "currentTimeMillis"
ldc "()J"
iconst_0
invokevirtual org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
24: aload 2
bipush 88
invokevirtual org.objectweb.asm.MethodVisitor.visitInsn:(I)V
25: aload 2
sipush 184
aload 0
ldc "getM"
ldc "()Ljava/lang/Object;"
iconst_0
invokevirtual org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
26: aload 2
bipush 89
invokevirtual org.objectweb.asm.MethodVisitor.visitInsn:(I)V
27: aload 2
sipush 198
aload 4
invokevirtual org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILorg/objectweb/asm/Label;)V
28: aload 2
sipush 184
aload 0
ldc "methodA"
ldc "()V"
iconst_0
invokevirtual org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
29: aload 2
sipush 167
aload 5
invokevirtual org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILorg/objectweb/asm/Label;)V
30: aload 2
aload 4
invokevirtual org.objectweb.asm.MethodVisitor.visitLabel:(Lorg/objectweb/asm/Label;)V
31: aload 2
sipush 184
aload 0
ldc "methodB"
ldc "()V"
iconst_0
invokevirtual org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
32: aload 2
aload 5
invokevirtual org.objectweb.asm.MethodVisitor.visitLabel:(Lorg/objectweb/asm/Label;)V
33: aload 2
sipush 169
iconst_1
invokevirtual org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
34: aload 2
bipush 10
bipush 10
invokevirtual org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
35: aload 2
invokevirtual org.objectweb.asm.MethodVisitor.visitEnd:()V
36: aload 1
invokevirtual org.objectweb.asm.ClassWriter.toByteArray:()[B
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 37 0 clazzName Ljava/lang/String;
2 37 1 w Lorg/objectweb/asm/ClassWriter;
7 37 2 mv Lorg/objectweb/asm/MethodVisitor;
17 37 3 l1 Lorg/objectweb/asm/Label;
22 37 4 lElse Lorg/objectweb/asm/Label;
23 37 5 lEnd Lorg/objectweb/asm/Label;
}
SourceFile: "DeoptimizeOnExceptionTest.java"
NestMembers:
org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest$MyClassLoader
InnerClasses:
public Options = org.graalvm.compiler.core.phases.HighTier$Options of org.graalvm.compiler.core.phases.HighTier
public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
public final InlineInfo = org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo of org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin
public MyClassLoader = org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest$MyClassLoader of org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest