class org.jruby.compiler.BlockJITTask extends org.jruby.compiler.JITCompiler$Task
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.jruby.compiler.BlockJITTask
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.runtime.MixedModeIRBlockBody body;
descriptor: Lorg/jruby/runtime/MixedModeIRBlockBody;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String blockId;
descriptor: Ljava/lang/String;
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.runtime.MixedModeIRBlockBody, java.lang.String);
descriptor: (Lorg/jruby/compiler/JITCompiler;Lorg/jruby/runtime/MixedModeIRBlockBody;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial org.jruby.compiler.JITCompiler$Task.<init>:(Lorg/jruby/compiler/JITCompiler;)V
1: aload 0
aload 2
putfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
2: aload 0
aload 3
putfield org.jruby.compiler.BlockJITTask.className:Ljava/lang/String;
3: aload 0
aload 2
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.getName:()Ljava/lang/String;
putfield org.jruby.compiler.BlockJITTask.blockId:Ljava/lang/String;
4: aload 2
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.getIRScope:()Lorg/jruby/ir/IRScope;
invokevirtual org.jruby.ir.IRScope.getNearestMethod:()Lorg/jruby/ir/IRMethod;
astore 4
start local 4 5: aload 0
aload 4
ifnull 6
aload 4
invokevirtual org.jruby.ir.IRMethod.getByteName:()Lorg/jruby/util/ByteList;
invokevirtual org.jruby.util.ByteList.toString:()Ljava/lang/String;
goto 7
StackMap locals: org.jruby.compiler.BlockJITTask org.jruby.compiler.JITCompiler org.jruby.runtime.MixedModeIRBlockBody java.lang.String org.jruby.ir.IRMethod
StackMap stack: org.jruby.compiler.BlockJITTask
6: aconst_null
StackMap locals: org.jruby.compiler.BlockJITTask org.jruby.compiler.JITCompiler org.jruby.runtime.MixedModeIRBlockBody java.lang.String org.jruby.ir.IRMethod
StackMap stack: org.jruby.compiler.BlockJITTask java.lang.String
7: putfield org.jruby.compiler.BlockJITTask.methodName:Ljava/lang/String;
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/compiler/BlockJITTask;
0 9 1 jitCompiler Lorg/jruby/compiler/JITCompiler;
0 9 2 body Lorg/jruby/runtime/MixedModeIRBlockBody;
0 9 3 className Ljava/lang/String;
5 9 4 method Lorg/jruby/ir/IRMethod;
MethodParameters:
Name Flags
jitCompiler
body
className
public void exec();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=9, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.BlockJITTask.jitCompiler:Lorg/jruby/compiler/JITCompiler;
getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
aload 0
getfield org.jruby.compiler.BlockJITTask.className:Ljava/lang/String;
aload 0
getfield org.jruby.compiler.BlockJITTask.methodName:Ljava/lang/String;
aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
invokestatic org.jruby.compiler.MethodJITTask.checkExcludedMethod:(Lorg/jruby/RubyInstanceConfig;Ljava/lang/String;Ljava/lang/String;Lorg/jruby/compiler/Compilable;)Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnull 6
2: aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
iconst_m1
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.setCallCount:(I)V
3: aload 0
getfield org.jruby.compiler.BlockJITTask.jitCompiler:Lorg/jruby/compiler/JITCompiler;
getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
invokevirtual org.jruby.RubyInstanceConfig.isJitLogging:()Z
ifeq 5
4: aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
aload 0
getfield org.jruby.compiler.BlockJITTask.blockId:Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc "skipping block in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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
invokestatic org.jruby.compiler.JITCompiler.log:(Lorg/jruby/compiler/Compilable;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: java.lang.String
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.getIRScope:()Lorg/jruby/ir/IRScope;
invokestatic org.jruby.ast.util.SexpMaker.sha1:(Lorg/jruby/ir/IRScope;)Ljava/lang/String;
astore 2
start local 2 7: aload 0
getfield org.jruby.compiler.BlockJITTask.jitCompiler:Lorg/jruby/compiler/JITCompiler;
getfield org.jruby.compiler.JITCompiler.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 8: new org.jruby.ir.targets.JVMVisitor
dup
aload 3
invokespecial org.jruby.ir.targets.JVMVisitor.<init>:(Lorg/jruby/Ruby;)V
astore 4
start local 4 9: new org.jruby.compiler.BlockJITClassGenerator
dup
aload 0
getfield org.jruby.compiler.BlockJITTask.className:Ljava/lang/String;
aload 0
getfield org.jruby.compiler.BlockJITTask.blockId:Ljava/lang/String;
aload 2
aload 3
aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
aload 4
invokespecial org.jruby.compiler.BlockJITClassGenerator.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/jruby/Ruby;Lorg/jruby/runtime/MixedModeIRBlockBody;Lorg/jruby/ir/targets/JVMVisitor;)V
astore 5
start local 5 10: new org.jruby.ir.targets.JVMVisitorMethodContext
dup
invokespecial org.jruby.ir.targets.JVMVisitorMethodContext.<init>:()V
astore 6
start local 6 11: aload 5
aload 6
invokevirtual org.jruby.compiler.BlockJITClassGenerator.compile:(Lorg/jruby/ir/targets/JVMVisitorMethodContext;)V
12: aload 0
aload 5
aload 4
aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.getIRScope:()Lorg/jruby/ir/IRScope;
aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.ensureInstrsReady:()Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.compiler.BlockJITTask.defineClass:(Lorg/jruby/compiler/JITClassGenerator;Lorg/jruby/ir/targets/JVMVisitor;Lorg/jruby/ir/IRScope;Lorg/jruby/ir/interpreter/InterpreterContext;)Ljava/lang/Class;
astore 7
start local 7 13: aload 7
ifnonnull 14
return
14: StackMap locals: org.jruby.compiler.BlockJITTask java.lang.String java.lang.String org.jruby.Ruby org.jruby.ir.targets.JVMVisitor org.jruby.compiler.BlockJITClassGenerator org.jruby.ir.targets.JVMVisitorMethodContext java.lang.Class
StackMap stack:
aload 6
invokevirtual org.jruby.ir.targets.JVMVisitorMethodContext.getVariableName:()Ljava/lang/String;
astore 8
start local 8 15: aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
16: new org.jruby.runtime.CompiledIRBlockBody
dup
17: getstatic org.jruby.compiler.JITCompiler.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
aload 7
aload 8
getstatic org.jruby.ir.targets.JVMVisitor.CLOSURE_SIGNATURE:Lcom/headius/invokebinder/Signature;
invokevirtual com.headius.invokebinder.Signature.type:()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;
18: aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.getIRScope:()Lorg/jruby/ir/IRScope;
19: aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.getIRScope:()Lorg/jruby/ir/IRScope;
checkcast org.jruby.ir.IRClosure
invokevirtual org.jruby.ir.IRClosure.getSignature:()Lorg/jruby/runtime/Signature;
invokevirtual org.jruby.runtime.Signature.encode:()J
20: invokespecial org.jruby.runtime.CompiledIRBlockBody.<init>:(Ljava/lang/invoke/MethodHandle;Lorg/jruby/ir/IRScope;J)V
21: invokevirtual org.jruby.runtime.MixedModeIRBlockBody.completeBuild:(Lorg/jruby/runtime/CompiledIRBlockBody;)V
22: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/jruby/compiler/BlockJITTask;
1 23 1 excludeModuleName Ljava/lang/String;
7 23 2 key Ljava/lang/String;
8 23 3 runtime Lorg/jruby/Ruby;
9 23 4 visitor Lorg/jruby/ir/targets/JVMVisitor;
10 23 5 generator Lorg/jruby/compiler/BlockJITClassGenerator;
11 23 6 context Lorg/jruby/ir/targets/JVMVisitorMethodContext;
13 23 7 sourceClass Ljava/lang/Class<*>;
15 23 8 jittedName Ljava/lang/String;
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 0: aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.getFile:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/BlockJITTask;
protected void logJitted();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "block done jitting"
iconst_0
anewarray java.lang.Object
invokevirtual org.jruby.compiler.BlockJITTask.logImpl:(Ljava/lang/String;[Ljava/lang/Object;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/compiler/BlockJITTask;
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 start local 1 0: aload 0
new java.lang.StringBuilder
dup
ldc "could not compile block; passes run: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
invokevirtual org.jruby.runtime.MixedModeIRBlockBody.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
aastore
invokevirtual org.jruby.compiler.BlockJITTask.logImpl:(Ljava/lang/String;[Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/compiler/BlockJITTask;
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 start local 1 start local 2 0: aload 0
getfield org.jruby.compiler.BlockJITTask.body:Lorg/jruby/runtime/MixedModeIRBlockBody;
aload 0
getfield org.jruby.compiler.BlockJITTask.blockId:Ljava/lang/String;
aload 1
aload 2
invokestatic org.jruby.compiler.JITCompiler.log:(Lorg/jruby/compiler/Compilable;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/compiler/BlockJITTask;
0 2 1 message Ljava/lang/String;
0 2 2 reason [Ljava/lang/Object;
MethodParameters:
Name Flags
message final
reason
}
SourceFile: "BlockJITTask.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