class org.jruby.compiler.MethodCompiledJITTask extends org.jruby.compiler.JITCompiler$Task
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.jruby.compiler.MethodCompiledJITTask
  super_class: org.jruby.compiler.JITCompiler$Task
{
  private final java.lang.String className;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.jruby.internal.runtime.methods.CompiledIRMethod method;
    descriptor: Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String methodName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.jruby.compiler.JITCompiler, org.jruby.internal.runtime.methods.CompiledIRMethod, java.lang.String);
    descriptor: (Lorg/jruby/compiler/JITCompiler;Lorg/jruby/internal/runtime/methods/CompiledIRMethod;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.jruby.compiler.MethodCompiledJITTask this
        start local 1 // org.jruby.compiler.JITCompiler jitCompiler
        start local 2 // org.jruby.internal.runtime.methods.CompiledIRMethod method
        start local 3 // java.lang.String className
         0: .line 51
            aload 0 /* this */
            aload 1 /* jitCompiler */
            invokespecial org.jruby.compiler.JITCompiler$Task.<init>:(Lorg/jruby/compiler/JITCompiler;)V
         1: .line 52
            aload 0 /* this */
            aload 2 /* method */
            putfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
         2: .line 53
            aload 0 /* this */
            aload 3 /* className */
            putfield org.jruby.compiler.MethodCompiledJITTask.className:Ljava/lang/String;
         3: .line 54
            aload 0 /* this */
            aload 2 /* method */
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.getName:()Ljava/lang/String;
            putfield org.jruby.compiler.MethodCompiledJITTask.methodName:Ljava/lang/String;
         4: .line 55
            return
        end local 3 // java.lang.String className
        end local 2 // org.jruby.internal.runtime.methods.CompiledIRMethod method
        end local 1 // org.jruby.compiler.JITCompiler jitCompiler
        end local 0 // org.jruby.compiler.MethodCompiledJITTask this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/jruby/compiler/MethodCompiledJITTask;
            0    5     1  jitCompiler  Lorg/jruby/compiler/JITCompiler;
            0    5     2       method  Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            0    5     3    className  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      jitCompiler  
      method       
      className    

  public void exec();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=13, args_size=1
        start local 0 // org.jruby.compiler.MethodCompiledJITTask this
         0: .line 60
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.className:Ljava/lang/String;
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.methodName:Ljava/lang/String;
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            invokestatic org.jruby.compiler.MethodJITTask.checkExcludedMethod:(Lorg/jruby/RubyInstanceConfig;Ljava/lang/String;Ljava/lang/String;Lorg/jruby/compiler/Compilable;)Ljava/lang/String;
            astore 1 /* excludeModuleName */
        start local 1 // java.lang.String excludeModuleName
         1: .line 61
            aload 1 /* excludeModuleName */
            ifnull 6
         2: .line 62
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            iconst_m1
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.setCallCount:(I)V
         3: .line 63
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.isJitLogging:()Z
            ifeq 5
         4: .line 64
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "skipping (compiled) method in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* excludeModuleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.jruby.compiler.MethodCompiledJITTask.logImpl:(Ljava/lang/String;[Ljava/lang/Object;)V
         5: .line 66
      StackMap locals: java.lang.String
      StackMap stack:
            return
         6: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.getIRScope:()Lorg/jruby/ir/IRScope;
            invokestatic org.jruby.ast.util.SexpMaker.sha1:(Lorg/jruby/ir/IRScope;)Ljava/lang/String;
            astore 2 /* key */
        start local 2 // java.lang.String key
         7: .line 70
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.jitCompiler:Lorg/jruby/compiler/JITCompiler;
            getfield org.jruby.compiler.JITCompiler.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         8: .line 71
            new org.jruby.ir.targets.JVMVisitor
            dup
            aload 3 /* runtime */
            invokespecial org.jruby.ir.targets.JVMVisitor.<init>:(Lorg/jruby/Ruby;)V
            astore 4 /* visitor */
        start local 4 // org.jruby.ir.targets.JVMVisitor visitor
         9: .line 72
            new org.jruby.compiler.MethodJITClassGenerator
            dup
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.className:Ljava/lang/String;
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.methodName:Ljava/lang/String;
            aload 2 /* key */
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            aload 4 /* visitor */
            invokespecial org.jruby.compiler.MethodJITClassGenerator.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jruby/Ruby;Lorg/jruby/internal/runtime/AbstractIRMethod;Lorg/jruby/ir/targets/JVMVisitor;)V
            astore 5 /* generator */
        start local 5 // org.jruby.compiler.MethodJITClassGenerator generator
        10: .line 74
            new org.jruby.ir.targets.JVMVisitorMethodContext
            dup
            invokespecial org.jruby.ir.targets.JVMVisitorMethodContext.<init>:()V
            astore 6 /* context */
        start local 6 // org.jruby.ir.targets.JVMVisitorMethodContext context
        11: .line 75
            aload 5 /* generator */
            aload 6 /* context */
            invokevirtual org.jruby.compiler.MethodJITClassGenerator.compile:(Lorg/jruby/ir/targets/JVMVisitorMethodContext;)V
        12: .line 77
            aload 0 /* this */
            aload 5 /* generator */
            aload 4 /* visitor */
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.getIRScope:()Lorg/jruby/ir/IRScope;
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.ensureInstrsReady:()Lorg/jruby/ir/interpreter/InterpreterContext;
            invokevirtual org.jruby.compiler.MethodCompiledJITTask.defineClass:(Lorg/jruby/compiler/JITClassGenerator;Lorg/jruby/ir/targets/JVMVisitor;Lorg/jruby/ir/IRScope;Lorg/jruby/ir/interpreter/InterpreterContext;)Ljava/lang/Class;
            astore 7 /* sourceClass */
        start local 7 // java.lang.Class sourceClass
        13: .line 78
            aload 7 /* sourceClass */
            ifnonnull 14
            return
        14: .line 80
      StackMap locals: org.jruby.compiler.MethodCompiledJITTask java.lang.String java.lang.String org.jruby.Ruby org.jruby.ir.targets.JVMVisitor org.jruby.compiler.MethodJITClassGenerator org.jruby.ir.targets.JVMVisitorMethodContext java.lang.Class
      StackMap stack:
            aload 6 /* context */
            invokevirtual org.jruby.ir.targets.JVMVisitorMethodContext.getVariableName:()Ljava/lang/String;
            astore 8 /* variableName */
        start local 8 // java.lang.String variableName
        15: .line 81
            getstatic org.jruby.compiler.JITCompiler.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            aload 7 /* sourceClass */
            aload 8 /* variableName */
            aload 6 /* context */
            iconst_m1
            invokevirtual org.jruby.ir.targets.JVMVisitorMethodContext.getNativeSignature:(I)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 9 /* variable */
        start local 9 // java.lang.invoke.MethodHandle variable
        16: .line 82
            aload 6 /* context */
            invokevirtual org.jruby.ir.targets.JVMVisitorMethodContext.getNativeSignaturesExceptVariable:()Lorg/jruby/util/collections/IntHashMap;
            astore 10 /* signatures */
        start local 10 // org.jruby.util.collections.IntHashMap signatures
        17: .line 84
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            aload 9 /* variable */
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.setVariable:(Ljava/lang/invoke/MethodHandle;)V
        18: .line 85
            aload 10 /* signatures */
            invokevirtual org.jruby.util.collections.IntHashMap.size:()I
            ifeq 21
        19: .line 86
            aload 10 /* signatures */
            invokevirtual org.jruby.util.collections.IntHashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 12
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 21
            aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.util.collections.IntHashMap$Entry
            astore 11 /* entry */
        start local 11 // org.jruby.util.collections.IntHashMap$Entry entry
        20: .line 87
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            getstatic org.jruby.compiler.JITCompiler.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            aload 7 /* sourceClass */
            aload 6 /* context */
            invokevirtual org.jruby.ir.targets.JVMVisitorMethodContext.getSpecificName:()Ljava/lang/String;
            aload 11 /* entry */
            invokevirtual org.jruby.util.collections.IntHashMap$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.invoke.MethodType
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.setSpecific:(Ljava/lang/invoke/MethodHandle;)V
        end local 11 // org.jruby.util.collections.IntHashMap$Entry entry
        21: .line 91
      StackMap locals: java.lang.String java.lang.invoke.MethodHandle org.jruby.util.collections.IntHashMap
      StackMap stack:
            return
        end local 10 // org.jruby.util.collections.IntHashMap signatures
        end local 9 // java.lang.invoke.MethodHandle variable
        end local 8 // java.lang.String variableName
        end local 7 // java.lang.Class sourceClass
        end local 6 // org.jruby.ir.targets.JVMVisitorMethodContext context
        end local 5 // org.jruby.compiler.MethodJITClassGenerator generator
        end local 4 // org.jruby.ir.targets.JVMVisitor visitor
        end local 3 // org.jruby.Ruby runtime
        end local 2 // java.lang.String key
        end local 1 // java.lang.String excludeModuleName
        end local 0 // org.jruby.compiler.MethodCompiledJITTask this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   22     0               this  Lorg/jruby/compiler/MethodCompiledJITTask;
            1   22     1  excludeModuleName  Ljava/lang/String;
            7   22     2                key  Ljava/lang/String;
            8   22     3            runtime  Lorg/jruby/Ruby;
            9   22     4            visitor  Lorg/jruby/ir/targets/JVMVisitor;
           10   22     5          generator  Lorg/jruby/compiler/MethodJITClassGenerator;
           11   22     6            context  Lorg/jruby/ir/targets/JVMVisitorMethodContext;
           13   22     7        sourceClass  Ljava/lang/Class<*>;
           15   22     8       variableName  Ljava/lang/String;
           16   22     9           variable  Ljava/lang/invoke/MethodHandle;
           17   22    10         signatures  Lorg/jruby/util/collections/IntHashMap<Ljava/lang/invoke/MethodType;>;
           20   21    11              entry  Lorg/jruby/util/collections/IntHashMap$Entry<Ljava/lang/invoke/MethodType;>;
    Exceptions:
      throws java.lang.NoSuchMethodException, java.lang.IllegalAccessException

  protected java.lang.String getSourceFile();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.compiler.MethodCompiledJITTask this
         0: .line 95
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.getFile:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.compiler.MethodCompiledJITTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/compiler/MethodCompiledJITTask;

  protected void logJitted();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.compiler.MethodCompiledJITTask this
         0: .line 100
            aload 0 /* this */
            ldc "(compiled) method done jitting"
            iconst_0
            anewarray java.lang.Object
            invokevirtual org.jruby.compiler.MethodCompiledJITTask.logImpl:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 101
            return
        end local 0 // org.jruby.compiler.MethodCompiledJITTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/compiler/MethodCompiledJITTask;

  protected void logFailed(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.compiler.MethodCompiledJITTask this
        start local 1 // java.lang.Throwable ex
         0: .line 105
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "could not re-compile method; passes run: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            invokevirtual org.jruby.internal.runtime.methods.CompiledIRMethod.getIRScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getExecutedPasses:()Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ex */
            aastore
            invokevirtual org.jruby.compiler.MethodCompiledJITTask.logImpl:(Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 106
            return
        end local 1 // java.lang.Throwable ex
        end local 0 // org.jruby.compiler.MethodCompiledJITTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/compiler/MethodCompiledJITTask;
            0    2     1    ex  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      ex    final

  protected void logImpl(java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.compiler.MethodCompiledJITTask this
        start local 1 // java.lang.String message
        start local 2 // java.lang.Object[] reason
         0: .line 110
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.method:Lorg/jruby/internal/runtime/methods/CompiledIRMethod;
            aload 0 /* this */
            getfield org.jruby.compiler.MethodCompiledJITTask.methodName:Ljava/lang/String;
            aload 1 /* message */
            aload 2 /* reason */
            invokestatic org.jruby.compiler.JITCompiler.log:(Lorg/jruby/compiler/Compilable;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
         1: .line 111
            return
        end local 2 // java.lang.Object[] reason
        end local 1 // java.lang.String message
        end local 0 // org.jruby.compiler.MethodCompiledJITTask this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/compiler/MethodCompiledJITTask;
            0    2     1  message  Ljava/lang/String;
            0    2     2   reason  [Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      message  final
      reason   
}
SourceFile: "MethodCompiledJITTask.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  abstract Task = org.jruby.compiler.JITCompiler$Task of org.jruby.compiler.JITCompiler
  public Entry = org.jruby.util.collections.IntHashMap$Entry of org.jruby.util.collections.IntHashMap