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 footprint;
    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: .line 184
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.m:Ljava/lang/Object;
         1: .line 185
            ldc 9223372036854775807
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.ct:J
         2: .line 195
            ldc "t/TestJSR"
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.name:Ljava/lang/String;
         3: .line 197
            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 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
         0: .line 56
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
         1: .line 57
            aload 0 /* this */
            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: .line 58
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
      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 // java.lang.String m1
        start local 1 // java.lang.String m2
        start local 2 // java.lang.String m3
        start local 3 // java.lang.String m4
        start local 4 // java.lang.String m5
         0: .line 61
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* m1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* m2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* m3 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* m4 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* m5 */
            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 // java.lang.String m5
        end local 3 // java.lang.String m4
        end local 2 // java.lang.String m3
        end local 1 // java.lang.String m2
        end local 0 // java.lang.String m1
      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 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
         0: .line 66
            aload 0 /* this */
            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: .line 67
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
      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 // java.lang.String m1
        start local 1 // java.lang.String m2
        start local 2 // java.lang.String m3
        start local 3 // java.lang.String m4
        start local 4 // java.lang.String m5
         0: .line 71
            aload 0 /* m1 */
            ifnull 2
         1: .line 72
            aload 0 /* m1 */
            aload 1 /* m2 */
            aload 2 /* m3 */
            aload 3 /* m4 */
            aload 4 /* m5 */
            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: .line 74
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* m1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* m2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* m3 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* m4 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* m5 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.String m5
        end local 3 // java.lang.String m4
        end local 2 // java.lang.String m3
        end local 1 // java.lang.String m2
        end local 0 // java.lang.String m1
      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 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
         0: .line 79
            aload 0 /* this */
            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: .line 80
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
      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 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
         0: .line 84
            new org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest$MyClassLoader
            dup
            invokespecial org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest$MyClassLoader.<init>:()V
            astore 1 /* testCl */
        start local 1 // java.lang.ClassLoader testCl
         1: .line 86
            aload 1 /* testCl */
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.name:Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* c */
        start local 2 // java.lang.Class c
         2: .line 87
            aload 2 /* c */
            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 /* r */
        start local 3 // java.lang.Runnable r
         3: .line 88
            ldc 9223372036854775807
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.ct:J
         4: .line 90
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 8
         6: .line 91
      StackMap locals: org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest java.lang.ClassLoader java.lang.Class java.lang.Runnable int
      StackMap stack:
            aload 3 /* r */
            invokeinterface java.lang.Runnable.run:()V
         7: .line 90
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            bipush 100
            if_icmplt 6
        end local 4 // int i
         9: .line 94
            aload 0 /* this */
            aload 2 /* c */
            ldc "run"
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getResolvedJavaMethod:(Ljava/lang/Class;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 4 /* method */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod method
        10: .line 95
            aload 0 /* this */
            aload 4 /* method */
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/code/InstalledCode;
            pop
        11: .line 96
            lconst_0
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.ct:J
        12: .line 97
            aload 3 /* r */
            invokeinterface java.lang.Runnable.run:()V
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 3 // java.lang.Runnable r
        end local 2 // java.lang.Class c
        end local 1 // java.lang.ClassLoader testCl
        13: .line 98
            goto 17
      StackMap locals: org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest
      StackMap stack: java.lang.Throwable
        14: astore 1 /* e */
        start local 1 // java.lang.Throwable e
        15: .line 99
            aload 1 /* e */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
        16: .line 100
            invokestatic org.junit.Assert.fail:()V
        end local 1 // java.lang.Throwable e
        17: .line 102
      StackMap locals:
      StackMap stack:
            ldc "SUCCESS"
            areturn
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
      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 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
         0: .line 107
            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: .line 108
            aload 0 /* this */
            ldc "test3Snippet"
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.getResolvedJavaMethod:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 1 /* method */
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         4: .line 110
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 25
         6: .line 112
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod int
      StackMap stack:
            aload 1 /* method */
            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 /* expectedCompiledCode */
        start local 4 // boolean expectedCompiledCode
         9: .line 113
            aload 0 /* this */
            aload 1 /* method */
            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 /* code */
        start local 5 // jdk.vm.ci.code.InstalledCode code
        10: .line 114
            aload 5 /* code */
            invokevirtual jdk.vm.ci.code.InstalledCode.isValid:()Z
            invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.assertTrue:(Z)V
        11: .line 117
            new org.graalvm.compiler.core.test.GraalCompilerTest$Result
            dup
            aload 5 /* code */
            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 /* actual */
        start local 3 // org.graalvm.compiler.core.test.GraalCompilerTest$Result actual
        12: .line 118
            goto 15
        end local 3 // org.graalvm.compiler.core.test.GraalCompilerTest$Result actual
      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 /* e */
        start local 6 // java.lang.Exception e
        14: .line 119
            new org.graalvm.compiler.core.test.GraalCompilerTest$Result
            dup
            aconst_null
            aload 6 /* e */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest$Result.<init>:(Ljava/lang/Object;Ljava/lang/Throwable;)V
            astore 3 /* actual */
        end local 6 // java.lang.Exception e
        start local 3 // org.graalvm.compiler.core.test.GraalCompilerTest$Result actual
        15: .line 122
      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 /* i */
            ifle 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: iload 4 /* expectedCompiledCode */
            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: .line 123
            aload 0 /* this */
            new org.graalvm.compiler.core.test.GraalCompilerTest$Result
            dup
            iload 4 /* expectedCompiledCode */
            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 /* actual */
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.assertEquals:(Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;)V
        21: .line 124
            iload 4 /* expectedCompiledCode */
            aload 5 /* code */
            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 // jdk.vm.ci.code.InstalledCode code
        end local 4 // boolean expectedCompiledCode
        end local 3 // org.graalvm.compiler.core.test.GraalCompilerTest$Result actual
        24: .line 110
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 2 /* i */
            iconst_2
            if_icmplt 6
        end local 2 // int i
        26: .line 126
            return
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
      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 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
        start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 3 // org.graalvm.compiler.nodes.ValueNode[] args
         0: .line 130
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "throwException"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 131
            aload 1 /* b */
            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: .line 132
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InlineInvokePlugin$InlineInfo.DO_NOT_INLINE_WITH_EXCEPTION:Lorg/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin$InlineInfo;
            areturn
         3: .line 134
      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: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* b */
            aload 2 /* method */
            aload 3 /* args */
            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 // org.graalvm.compiler.nodes.ValueNode[] args
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest this
      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: .line 141
            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 // boolean rethrowException
         0: .line 148
            iconst_1
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.footprint:I
         1: .line 149
            invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.throwException:()V
         2: .line 150
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 1 /* e */
        start local 1 // java.lang.Exception e
         4: .line 151
            iconst_2
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.footprint:I
         5: .line 152
            iload 0 /* rethrowException */
            ifeq 7
         6: .line 153
            aload 1 /* e */
            athrow
        end local 1 // java.lang.Exception e
         7: .line 157
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.inCompiledCode:()Z
            ireturn
        end local 0 // boolean rethrowException
      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: .line 168
            new java.util.Random
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            invokespecial java.util.Random.<init>:(J)V
            astore 0 /* r */
        start local 0 // java.util.Random r
         1: .line 169
      StackMap locals: java.util.Random
      StackMap stack:
            aload 0 /* r */
            invokevirtual java.util.Random.nextFloat:()F
            ldc 0.03
            fcmpl
            ifgt 1
         2: .line 173
            return
        end local 0 // java.util.Random r
      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: .line 177
            new java.util.Random
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            invokespecial java.util.Random.<init>:(J)V
            astore 0 /* r */
        start local 0 // java.util.Random r
         1: .line 178
      StackMap locals: java.util.Random
      StackMap stack:
            aload 0 /* r */
            invokevirtual java.util.Random.nextDouble:()D
            ldc 0.05
            dcmpl
            ifgt 1
         2: .line 181
            return
        end local 0 // java.util.Random r
      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: .line 188
            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: .line 189
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnExceptionTest.m:Ljava/lang/Object;
            areturn
         2: .line 191
      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: .line 201
            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 /* clazzName */
        start local 0 // java.lang.String clazzName
         1: .line 202
            new org.objectweb.asm.ClassWriter
            dup
            iconst_0
            invokespecial org.objectweb.asm.ClassWriter.<init>:(I)V
            astore 1 /* w */
        start local 1 // org.objectweb.asm.ClassWriter w
         2: .line 203
            aload 1 /* w */
            bipush 49
            iconst_1
         3: .line 204
            ldc "t/TestJSR"
            aconst_null
            ldc "java/lang/Object"
         4: .line 205
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "java/lang/Runnable"
            aastore
         5: .line 203
            invokevirtual org.objectweb.asm.ClassWriter.visit:(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
         6: .line 206
            aload 1 /* w */
            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 /* mv */
        start local 2 // org.objectweb.asm.MethodVisitor mv
         7: .line 207
            aload 2 /* mv */
            invokevirtual org.objectweb.asm.MethodVisitor.visitCode:()V
         8: .line 208
            aload 2 /* mv */
            bipush 25
            iconst_0
            invokevirtual org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
         9: .line 209
            aload 2 /* mv */
            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: .line 210
            aload 2 /* mv */
            sipush 177
            invokevirtual org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        11: .line 211
            aload 2 /* mv */
            bipush 10
            bipush 10
            invokevirtual org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        12: .line 212
            aload 2 /* mv */
            invokevirtual org.objectweb.asm.MethodVisitor.visitEnd:()V
        13: .line 214
            aload 1 /* w */
            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 /* mv */
        14: .line 215
            aload 2 /* mv */
            invokevirtual org.objectweb.asm.MethodVisitor.visitCode:()V
        15: .line 216
            aload 2 /* mv */
            sipush 184
            aload 0 /* clazzName */
            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: .line 217
            new org.objectweb.asm.Label
            dup
            invokespecial org.objectweb.asm.Label.<init>:()V
            astore 3 /* l1 */
        start local 3 // org.objectweb.asm.Label l1
        17: .line 218
            aload 2 /* mv */
            sipush 168
            aload 3 /* l1 */
            invokevirtual org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILorg/objectweb/asm/Label;)V
        18: .line 219
            aload 2 /* mv */
            sipush 177
            invokevirtual org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        19: .line 221
            aload 2 /* mv */
            aload 3 /* l1 */
            invokevirtual org.objectweb.asm.MethodVisitor.visitLabel:(Lorg/objectweb/asm/Label;)V
        20: .line 222
            aload 2 /* mv */
            bipush 58
            iconst_1
            invokevirtual org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
        21: .line 224
            new org.objectweb.asm.Label
            dup
            invokespecial org.objectweb.asm.Label.<init>:()V
            astore 4 /* lElse */
        start local 4 // org.objectweb.asm.Label lElse
        22: .line 225
            new org.objectweb.asm.Label
            dup
            invokespecial org.objectweb.asm.Label.<init>:()V
            astore 5 /* lEnd */
        start local 5 // org.objectweb.asm.Label lEnd
        23: .line 226
            aload 2 /* mv */
            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: .line 227
            aload 2 /* mv */
            bipush 88
            invokevirtual org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        25: .line 228
            aload 2 /* mv */
            sipush 184
            aload 0 /* clazzName */
            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: .line 229
            aload 2 /* mv */
            bipush 89
            invokevirtual org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        27: .line 230
            aload 2 /* mv */
            sipush 198
            aload 4 /* lElse */
            invokevirtual org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILorg/objectweb/asm/Label;)V
        28: .line 231
            aload 2 /* mv */
            sipush 184
            aload 0 /* clazzName */
            ldc "methodA"
            ldc "()V"
            iconst_0
            invokevirtual org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        29: .line 232
            aload 2 /* mv */
            sipush 167
            aload 5 /* lEnd */
            invokevirtual org.objectweb.asm.MethodVisitor.visitJumpInsn:(ILorg/objectweb/asm/Label;)V
        30: .line 233
            aload 2 /* mv */
            aload 4 /* lElse */
            invokevirtual org.objectweb.asm.MethodVisitor.visitLabel:(Lorg/objectweb/asm/Label;)V
        31: .line 234
            aload 2 /* mv */
            sipush 184
            aload 0 /* clazzName */
            ldc "methodB"
            ldc "()V"
            iconst_0
            invokevirtual org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        32: .line 235
            aload 2 /* mv */
            aload 5 /* lEnd */
            invokevirtual org.objectweb.asm.MethodVisitor.visitLabel:(Lorg/objectweb/asm/Label;)V
        33: .line 237
            aload 2 /* mv */
            sipush 169
            iconst_1
            invokevirtual org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
        34: .line 238
            aload 2 /* mv */
            bipush 10
            bipush 10
            invokevirtual org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        35: .line 239
            aload 2 /* mv */
            invokevirtual org.objectweb.asm.MethodVisitor.visitEnd:()V
        36: .line 240
            aload 1 /* w */
            invokevirtual org.objectweb.asm.ClassWriter.toByteArray:()[B
            areturn
        end local 5 // org.objectweb.asm.Label lEnd
        end local 4 // org.objectweb.asm.Label lElse
        end local 3 // org.objectweb.asm.Label l1
        end local 2 // org.objectweb.asm.MethodVisitor mv
        end local 1 // org.objectweb.asm.ClassWriter w
        end local 0 // java.lang.String clazzName
      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