class org.jruby.compiler.MethodJITTask extends org.jruby.compiler.JITCompiler$Task
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.jruby.compiler.MethodJITTask
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.MixedModeIRMethod method;
descriptor: Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
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.MixedModeIRMethod, java.lang.String);
descriptor: (Lorg/jruby/compiler/JITCompiler;Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, 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.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
2: aload 0
aload 3
putfield org.jruby.compiler.MethodJITTask.className:Ljava/lang/String;
3: aload 0
aload 2
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getName:()Ljava/lang/String;
putfield org.jruby.compiler.MethodJITTask.methodName:Ljava/lang/String;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/compiler/MethodJITTask;
0 5 1 jitCompiler Lorg/jruby/compiler/JITCompiler;
0 5 2 method Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
0 5 3 className Ljava/lang/String;
MethodParameters:
Name Flags
jitCompiler
method
className
public void exec();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=13, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.MethodJITTask.jitCompiler:Lorg/jruby/compiler/JITCompiler;
getfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
aload 0
getfield org.jruby.compiler.MethodJITTask.className:Ljava/lang/String;
aload 0
getfield org.jruby.compiler.MethodJITTask.methodName:Ljava/lang/String;
aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
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.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
iconst_m1
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.setCallCount:(I)V
3: aload 0
getfield org.jruby.compiler.MethodJITTask.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
new java.lang.StringBuilder
dup
ldc "skipping method 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
invokevirtual org.jruby.compiler.MethodJITTask.logImpl:(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.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.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.MethodJITTask.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.MethodJITClassGenerator
dup
aload 0
getfield org.jruby.compiler.MethodJITTask.className:Ljava/lang/String;
aload 0
getfield org.jruby.compiler.MethodJITTask.methodName:Ljava/lang/String;
aload 2
aload 3
aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
aload 4
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
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.MethodJITClassGenerator.compile:(Lorg/jruby/ir/targets/JVMVisitorMethodContext;)V
12: aload 0
aload 5
aload 4
aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getIRScope:()Lorg/jruby/ir/IRScope;
aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.ensureInstrsReady:()Lorg/jruby/ir/interpreter/InterpreterContext;
invokevirtual org.jruby.compiler.MethodJITTask.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.MethodJITTask 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
invokevirtual org.jruby.ir.targets.JVMVisitorMethodContext.getVariableName:()Ljava/lang/String;
astore 8
start local 8 15: getstatic org.jruby.compiler.JITCompiler.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
aload 7
aload 8
aload 6
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
start local 9 16: aload 6
invokevirtual org.jruby.ir.targets.JVMVisitorMethodContext.getNativeSignaturesExceptVariable:()Lorg/jruby/util/collections/IntHashMap;
astore 10
start local 10 17: aload 10
invokevirtual org.jruby.util.collections.IntHashMap.size:()I
ifne 27
18: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
19: new org.jruby.internal.runtime.methods.CompiledIRMethod
dup
20: aload 9
21: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getIRScope:()Lorg/jruby/ir/IRScope;
22: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getVisibility:()Lorg/jruby/runtime/Visibility;
23: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getImplementationClass:()Lorg/jruby/RubyModule;
24: invokespecial org.jruby.internal.runtime.methods.CompiledIRMethod.<init>:(Ljava/lang/invoke/MethodHandle;Lorg/jruby/ir/IRScope;Lorg/jruby/runtime/Visibility;Lorg/jruby/RubyModule;)V
25: invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.completeBuild:(Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
26: goto 38
27: StackMap locals: java.lang.String java.lang.invoke.MethodHandle org.jruby.util.collections.IntHashMap
StackMap stack:
aload 10
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 38
aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.util.collections.IntHashMap$Entry
astore 11
start local 11 28: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
29: new org.jruby.internal.runtime.methods.CompiledIRMethod
dup
30: aload 9
31: getstatic org.jruby.compiler.JITCompiler.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
aload 7
aload 6
invokevirtual org.jruby.ir.targets.JVMVisitorMethodContext.getSpecificName:()Ljava/lang/String;
aload 11
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;
32: aload 11
invokevirtual org.jruby.util.collections.IntHashMap$Entry.getKey:()I
33: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getIRScope:()Lorg/jruby/ir/IRScope;
34: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getVisibility:()Lorg/jruby/runtime/Visibility;
35: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getImplementationClass:()Lorg/jruby/RubyModule;
36: invokespecial org.jruby.internal.runtime.methods.CompiledIRMethod.<init>:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;ILorg/jruby/ir/IRScope;Lorg/jruby/runtime/Visibility;Lorg/jruby/RubyModule;)V
37: invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.completeBuild:(Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
end local 11 38: StackMap locals:
StackMap stack:
return
end local 10 end local 9 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 39 0 this Lorg/jruby/compiler/MethodJITTask;
1 39 1 excludeModuleName Ljava/lang/String;
7 39 2 key Ljava/lang/String;
8 39 3 runtime Lorg/jruby/Ruby;
9 39 4 visitor Lorg/jruby/ir/targets/JVMVisitor;
10 39 5 generator Lorg/jruby/compiler/MethodJITClassGenerator;
11 39 6 context Lorg/jruby/ir/targets/JVMVisitorMethodContext;
13 39 7 sourceClass Ljava/lang/Class<*>;
15 39 8 variableName Ljava/lang/String;
16 39 9 variable Ljava/lang/invoke/MethodHandle;
17 39 10 signatures Lorg/jruby/util/collections/IntHashMap<Ljava/lang/invoke/MethodType;>;
28 38 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 0: aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.getFile:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/MethodJITTask;
protected void logJitted();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "method done jitting"
iconst_0
anewarray java.lang.Object
invokevirtual org.jruby.compiler.MethodJITTask.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/MethodJITTask;
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 method; passes run: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.jruby.compiler.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
invokevirtual org.jruby.internal.runtime.methods.MixedModeIRMethod.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.MethodJITTask.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/MethodJITTask;
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.MethodJITTask.method:Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;
aload 0
getfield org.jruby.compiler.MethodJITTask.methodName: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/MethodJITTask;
0 2 1 message Ljava/lang/String;
0 2 2 reason [Ljava/lang/Object;
MethodParameters:
Name Flags
message
reason
static java.lang.String checkExcludedMethod(org.jruby.RubyInstanceConfig, java.lang.String, java.lang.String, org.jruby.compiler.Compilable);
descriptor: (Lorg/jruby/RubyInstanceConfig;Ljava/lang/String;Ljava/lang/String;Lorg/jruby/compiler/Compilable;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.RubyInstanceConfig.getExcludedMethods:()Ljava/util/Set;
invokeinterface java.util.Set.size:()I
ifle 13
1: aload 3
invokeinterface org.jruby.compiler.Compilable.getImplementationClass:()Lorg/jruby/RubyModule;
astore 4
start local 4 2: aload 1
astore 5
start local 5 3: aload 4
invokevirtual org.jruby.RubyModule.getMethodLocation:()Lorg/jruby/RubyModule;
invokevirtual org.jruby.RubyModule.isSingleton:()Z
ifeq 7
4: aload 4
checkcast org.jruby.MetaClass
invokevirtual org.jruby.MetaClass.getAttached:()Lorg/jruby/RubyBasicObject;
astore 6
start local 6 5: aload 6
instanceof org.jruby.RubyModule
ifeq 7
6: new java.lang.StringBuilder
dup
ldc "Meta:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
checkcast org.jruby.RubyModule
invokevirtual org.jruby.RubyModule.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
end local 6 7: StackMap locals: org.jruby.RubyModule java.lang.String
StackMap stack:
aload 0
invokevirtual org.jruby.RubyInstanceConfig.getExcludedMethods:()Ljava/util/Set;
aload 5
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 12
8: aload 0
invokevirtual org.jruby.RubyInstanceConfig.getExcludedMethods:()Ljava/util/Set;
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 12
9: aload 0
invokevirtual org.jruby.RubyInstanceConfig.getExcludedMethods:()Ljava/util/Set;
new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 35
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 12
10: aload 0
invokevirtual org.jruby.RubyInstanceConfig.getExcludedMethods:()Ljava/util/Set;
aload 3
invokeinterface org.jruby.compiler.Compilable.getFile:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 12
11: aload 0
invokevirtual org.jruby.RubyInstanceConfig.getExcludedMethods:()Ljava/util/Set;
new java.lang.StringBuilder
dup
aload 3
invokeinterface org.jruby.compiler.Compilable.getFile:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 3
invokeinterface org.jruby.compiler.Compilable.getLine:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 13
12: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 end local 4 13: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 config Lorg/jruby/RubyInstanceConfig;
0 14 1 className Ljava/lang/String;
0 14 2 methodName Ljava/lang/String;
0 14 3 target Lorg/jruby/compiler/Compilable;
2 13 4 implementationClass Lorg/jruby/RubyModule;
3 13 5 excludeModuleName Ljava/lang/String;
5 7 6 possibleRealClass Lorg/jruby/RubyBasicObject;
MethodParameters:
Name Flags
config final
className final
methodName final
target final
}
SourceFile: "MethodJITTask.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