public class org.jruby.ir.IRManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ir.IRManager
super_class: java.lang.Object
{
public static final java.lang.String SAFE_COMPILER_PASSES;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: ""
public static final java.lang.String DEFAULT_BUILD_PASSES;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: ""
public static final java.lang.String DEFAULT_JIT_PASSES;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "LocalOptimizationPass,DeadCodeElimination,OptimizeDynScopesPass,OptimizeDelegationPass,AddCallProtocolInstructions,AddMissingInitsPass"
public static final java.lang.String DEFAULT_INLINING_COMPILER_PASSES;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "LocalOptimizationPass"
public static boolean IR_INLINER;
descriptor: Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public static int IR_INLINER_THRESHOLD;
descriptor: I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
public static boolean IR_INLINER_VERBOSE;
descriptor: Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
private final org.jruby.ir.passes.CompilerPass deadCodeEliminationPass;
descriptor: Lorg/jruby/ir/passes/CompilerPass;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.ir.passes.CompilerPass optimizeDynScopesPass;
descriptor: Lorg/jruby/ir/passes/CompilerPass;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.ir.passes.CompilerPass optimizeDelegationPass;
descriptor: Lorg/jruby/ir/passes/CompilerPass;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final org.jruby.util.ByteList OBJECT;
descriptor: Lorg/jruby/util/ByteList;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private int dummyMetaClassCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final org.jruby.ir.IRModuleBody object;
descriptor: Lorg/jruby/ir/IRModuleBody;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.ir.operands.Nil nil;
descriptor: Lorg/jruby/ir/operands/Nil;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.ir.operands.Boolean tru;
descriptor: Lorg/jruby/ir/operands/Boolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.ir.operands.Boolean fals;
descriptor: Lorg/jruby/ir/operands/Boolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.ir.operands.StandardError standardError;
descriptor: Lorg/jruby/ir/operands/StandardError;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public final org.jruby.ir.instructions.ToggleBacktraceInstr needsBacktrace;
descriptor: Lorg/jruby/ir/instructions/ToggleBacktraceInstr;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final org.jruby.ir.instructions.ToggleBacktraceInstr needsNoBacktrace;
descriptor: Lorg/jruby/ir/instructions/ToggleBacktraceInstr;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private java.util.Set<org.jruby.ir.passes.CompilerPassListener> passListeners;
descriptor: Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Set<Lorg/jruby/ir/passes/CompilerPassListener;>;
private org.jruby.ir.passes.CompilerPassListener defaultListener;
descriptor: Lorg/jruby/ir/passes/CompilerPassListener;
flags: (0x0002) ACC_PRIVATE
private org.jruby.ir.listeners.InstructionsListener instrsListener;
descriptor: Lorg/jruby/ir/listeners/InstructionsListener;
flags: (0x0002) ACC_PRIVATE
private org.jruby.ir.listeners.IRScopeListener irScopeListener;
descriptor: Lorg/jruby/ir/listeners/IRScopeListener;
flags: (0x0002) ACC_PRIVATE
private java.util.List<org.jruby.ir.passes.CompilerPass> compilerPasses;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
private java.util.List<org.jruby.ir.passes.CompilerPass> inliningCompilerPasses;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
private java.util.List<org.jruby.ir.passes.CompilerPass> jitPasses;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
private java.util.List<org.jruby.ir.passes.CompilerPass> safePasses;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
private final org.jruby.RubyInstanceConfig config;
descriptor: Lorg/jruby/RubyInstanceConfig;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public final org.jruby.Ruby runtime;
descriptor: Lorg/jruby/Ruby;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private boolean dryRun;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static int CLOSURE_PREFIX_CACHE_SIZE;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private java.lang.String[] closurePrefixCache;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private static int FIXNUM_CACHE_HALF_SIZE;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private org.jruby.ir.operands.Fixnum[] fixnums;
descriptor: [Lorg/jruby/ir/operands/Fixnum;
flags: (0x0002) ACC_PRIVATE
private org.jruby.ir.instructions.ReceiveSelfInstr receiveSelfInstr;
descriptor: Lorg/jruby/ir/instructions/ReceiveSelfInstr;
flags: (0x0002) ACC_PRIVATE
private org.jruby.ir.instructions.LineNumberInstr[] lineNumbers;
descriptor: [Lorg/jruby/ir/instructions/LineNumberInstr;
flags: (0x0002) ACC_PRIVATE
private org.jruby.ir.operands.TemporaryLocalVariable[] temporaryLocalVariables;
descriptor: [Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: getstatic org.jruby.util.cli.Options.IR_INLINER:Lcom/headius/options/Option;
invokevirtual com.headius.options.Option.load:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putstatic org.jruby.ir.IRManager.IR_INLINER:Z
1: getstatic org.jruby.util.cli.Options.IR_INLINER_THRESHOLD:Lcom/headius/options/Option;
invokevirtual com.headius.options.Option.load:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
putstatic org.jruby.ir.IRManager.IR_INLINER_THRESHOLD:I
2: getstatic org.jruby.util.cli.Options.IR_INLINER_VERBOSE:Lcom/headius/options/Option;
invokevirtual com.headius.options.Option.load:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
putstatic org.jruby.ir.IRManager.IR_INLINER_VERBOSE:Z
3: new org.jruby.util.ByteList
dup
bipush 6
newarray 8
dup
iconst_0
bipush 79
bastore
dup
iconst_1
bipush 98
bastore
dup
iconst_2
bipush 106
bastore
dup
iconst_3
bipush 101
bastore
dup
iconst_4
bipush 99
bastore
dup
iconst_5
bipush 116
bastore
invokespecial org.jruby.util.ByteList.<init>:([B)V
putstatic org.jruby.ir.IRManager.OBJECT:Lorg/jruby/util/ByteList;
4: sipush 300
putstatic org.jruby.ir.IRManager.CLOSURE_PREFIX_CACHE_SIZE:I
5: sipush 16384
putstatic org.jruby.ir.IRManager.FIXNUM_CACHE_HALF_SIZE:I
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.jruby.Ruby, org.jruby.RubyInstanceConfig);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyInstanceConfig;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.jruby.ir.passes.DeadCodeElimination
dup
invokespecial org.jruby.ir.passes.DeadCodeElimination.<init>:()V
putfield org.jruby.ir.IRManager.deadCodeEliminationPass:Lorg/jruby/ir/passes/CompilerPass;
2: aload 0
new org.jruby.ir.passes.OptimizeDynScopesPass
dup
invokespecial org.jruby.ir.passes.OptimizeDynScopesPass.<init>:()V
putfield org.jruby.ir.IRManager.optimizeDynScopesPass:Lorg/jruby/ir/passes/CompilerPass;
3: aload 0
new org.jruby.ir.passes.OptimizeDelegationPass
dup
invokespecial org.jruby.ir.passes.OptimizeDelegationPass.<init>:()V
putfield org.jruby.ir.IRManager.optimizeDelegationPass:Lorg/jruby/ir/passes/CompilerPass;
4: aload 0
iconst_0
putfield org.jruby.ir.IRManager.dummyMetaClassCount:I
5: aload 0
new org.jruby.ir.operands.Nil
dup
invokespecial org.jruby.ir.operands.Nil.<init>:()V
putfield org.jruby.ir.IRManager.nil:Lorg/jruby/ir/operands/Nil;
6: aload 0
new org.jruby.ir.operands.Boolean
dup
iconst_1
invokespecial org.jruby.ir.operands.Boolean.<init>:(Z)V
putfield org.jruby.ir.IRManager.tru:Lorg/jruby/ir/operands/Boolean;
7: aload 0
new org.jruby.ir.operands.Boolean
dup
iconst_0
invokespecial org.jruby.ir.operands.Boolean.<init>:(Z)V
putfield org.jruby.ir.IRManager.fals:Lorg/jruby/ir/operands/Boolean;
8: aload 0
new org.jruby.ir.operands.StandardError
dup
invokespecial org.jruby.ir.operands.StandardError.<init>:()V
putfield org.jruby.ir.IRManager.standardError:Lorg/jruby/ir/operands/StandardError;
9: aload 0
new org.jruby.ir.instructions.ToggleBacktraceInstr
dup
iconst_1
invokespecial org.jruby.ir.instructions.ToggleBacktraceInstr.<init>:(Z)V
putfield org.jruby.ir.IRManager.needsBacktrace:Lorg/jruby/ir/instructions/ToggleBacktraceInstr;
10: aload 0
new org.jruby.ir.instructions.ToggleBacktraceInstr
dup
iconst_0
invokespecial org.jruby.ir.instructions.ToggleBacktraceInstr.<init>:(Z)V
putfield org.jruby.ir.IRManager.needsNoBacktrace:Lorg/jruby/ir/instructions/ToggleBacktraceInstr;
11: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield org.jruby.ir.IRManager.passListeners:Ljava/util/Set;
12: aload 0
new org.jruby.ir.passes.BasicCompilerPassListener
dup
invokespecial org.jruby.ir.passes.BasicCompilerPassListener.<init>:()V
putfield org.jruby.ir.IRManager.defaultListener:Lorg/jruby/ir/passes/CompilerPassListener;
13: aload 0
aconst_null
putfield org.jruby.ir.IRManager.instrsListener:Lorg/jruby/ir/listeners/InstructionsListener;
14: aload 0
aconst_null
putfield org.jruby.ir.IRManager.irScopeListener:Lorg/jruby/ir/listeners/IRScopeListener;
15: aload 0
iconst_0
putfield org.jruby.ir.IRManager.dryRun:Z
16: aload 0
getstatic org.jruby.ir.IRManager.CLOSURE_PREFIX_CACHE_SIZE:I
anewarray java.lang.String
putfield org.jruby.ir.IRManager.closurePrefixCache:[Ljava/lang/String;
17: aload 0
iconst_2
getstatic org.jruby.ir.IRManager.FIXNUM_CACHE_HALF_SIZE:I
imul
anewarray org.jruby.ir.operands.Fixnum
putfield org.jruby.ir.IRManager.fixnums:[Lorg/jruby/ir/operands/Fixnum;
18: aload 0
new org.jruby.ir.instructions.ReceiveSelfInstr
dup
getstatic org.jruby.ir.operands.Self.SELF:Lorg/jruby/ir/operands/Self;
invokespecial org.jruby.ir.instructions.ReceiveSelfInstr.<init>:(Lorg/jruby/ir/operands/Variable;)V
putfield org.jruby.ir.IRManager.receiveSelfInstr:Lorg/jruby/ir/instructions/ReceiveSelfInstr;
19: aload 0
sipush 3000
anewarray org.jruby.ir.instructions.LineNumberInstr
putfield org.jruby.ir.IRManager.lineNumbers:[Lorg/jruby/ir/instructions/LineNumberInstr;
20: aload 0
sipush 1600
anewarray org.jruby.ir.operands.TemporaryLocalVariable
putfield org.jruby.ir.IRManager.temporaryLocalVariables:[Lorg/jruby/ir/operands/TemporaryLocalVariable;
21: aload 0
aload 1
putfield org.jruby.ir.IRManager.runtime:Lorg/jruby/Ruby;
22: aload 0
aload 2
putfield org.jruby.ir.IRManager.config:Lorg/jruby/RubyInstanceConfig;
23: aload 0
new org.jruby.ir.IRClassBody
dup
aload 0
aconst_null
getstatic org.jruby.ir.IRManager.OBJECT:Lorg/jruby/util/ByteList;
iconst_0
aconst_null
iconst_0
invokespecial org.jruby.ir.IRClassBody.<init>:(Lorg/jruby/ir/IRManager;Lorg/jruby/ir/IRScope;Lorg/jruby/util/ByteList;ILorg/jruby/parser/StaticScope;Z)V
putfield org.jruby.ir.IRManager.object:Lorg/jruby/ir/IRModuleBody;
24: aload 0
getstatic org.jruby.RubyInstanceConfig.IR_COMPILER_PASSES:Ljava/lang/String;
ldc ""
invokestatic org.jruby.ir.passes.CompilerPass.getPassesFromString:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
putfield org.jruby.ir.IRManager.compilerPasses:Ljava/util/List;
25: aload 0
getstatic org.jruby.RubyInstanceConfig.IR_COMPILER_PASSES:Ljava/lang/String;
ldc "LocalOptimizationPass"
invokestatic org.jruby.ir.passes.CompilerPass.getPassesFromString:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
putfield org.jruby.ir.IRManager.inliningCompilerPasses:Ljava/util/List;
26: aload 0
getstatic org.jruby.RubyInstanceConfig.IR_JIT_PASSES:Ljava/lang/String;
ldc "LocalOptimizationPass,DeadCodeElimination,OptimizeDynScopesPass,OptimizeDelegationPass,AddCallProtocolInstructions,AddMissingInitsPass"
invokestatic org.jruby.ir.passes.CompilerPass.getPassesFromString:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
putfield org.jruby.ir.IRManager.jitPasses:Ljava/util/List;
27: aload 0
aconst_null
ldc ""
invokestatic org.jruby.ir.passes.CompilerPass.getPassesFromString:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
putfield org.jruby.ir.IRManager.safePasses:Ljava/util/List;
28: getstatic org.jruby.RubyInstanceConfig.IR_DEBUG_IGV:Ljava/lang/String;
ifnull 29
aload 0
new org.jruby.ir.util.IGVInstrListener
dup
invokespecial org.jruby.ir.util.IGVInstrListener.<init>:()V
putfield org.jruby.ir.IRManager.instrsListener:Lorg/jruby/ir/listeners/InstructionsListener;
29: StackMap locals: org.jruby.ir.IRManager org.jruby.Ruby org.jruby.RubyInstanceConfig
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/jruby/ir/IRManager;
0 30 1 runtime Lorg/jruby/Ruby;
0 30 2 config Lorg/jruby/RubyInstanceConfig;
MethodParameters:
Name Flags
runtime
config
public org.jruby.Ruby getRuntime();
descriptor: ()Lorg/jruby/Ruby;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.runtime:Lorg/jruby/Ruby;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public boolean isDryRun();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.dryRun:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public void setDryRun(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.jruby.ir.IRManager.dryRun:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRManager;
0 2 1 value Z
MethodParameters:
Name Flags
value
public org.jruby.ir.operands.Nil getNil();
descriptor: ()Lorg/jruby/ir/operands/Nil;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.nil:Lorg/jruby/ir/operands/Nil;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public org.jruby.ir.operands.StandardError getStandardError();
descriptor: ()Lorg/jruby/ir/operands/StandardError;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.standardError:Lorg/jruby/ir/operands/StandardError;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public org.jruby.ir.operands.Boolean getTrue();
descriptor: ()Lorg/jruby/ir/operands/Boolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.tru:Lorg/jruby/ir/operands/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public org.jruby.ir.operands.Boolean getFalse();
descriptor: ()Lorg/jruby/ir/operands/Boolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.fals:Lorg/jruby/ir/operands/Boolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public org.jruby.ir.IRModuleBody getObject();
descriptor: ()Lorg/jruby/ir/IRModuleBody;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.object:Lorg/jruby/ir/IRModuleBody;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public org.jruby.ir.instructions.ToggleBacktraceInstr needsBacktrace(boolean);
descriptor: (Z)Lorg/jruby/ir/instructions/ToggleBacktraceInstr;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
aload 0
getfield org.jruby.ir.IRManager.needsBacktrace:Lorg/jruby/ir/instructions/ToggleBacktraceInstr;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.jruby.ir.IRManager.needsNoBacktrace:Lorg/jruby/ir/instructions/ToggleBacktraceInstr;
StackMap locals:
StackMap stack: org.jruby.ir.instructions.ToggleBacktraceInstr
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/IRManager;
0 3 1 needsIt Z
MethodParameters:
Name Flags
needsIt
public org.jruby.ir.passes.CompilerPassScheduler schedulePasses();
descriptor: ()Lorg/jruby/ir/passes/CompilerPassScheduler;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.compilerPasses:Ljava/util/List;
invokestatic org.jruby.ir.IRManager.schedulePasses:(Ljava/util/List;)Lorg/jruby/ir/passes/CompilerPassScheduler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public static org.jruby.ir.passes.CompilerPassScheduler schedulePasses(java.util.List<org.jruby.ir.passes.CompilerPass>);
descriptor: (Ljava/util/List;)Lorg/jruby/ir/passes/CompilerPassScheduler;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new org.jruby.ir.IRManager$1
dup
aload 0
invokespecial org.jruby.ir.IRManager$1.<init>:(Ljava/util/List;)V
astore 1
start local 1 1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 passes Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
1 2 1 scheduler Lorg/jruby/ir/passes/CompilerPassScheduler;
Signature: (Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;)Lorg/jruby/ir/passes/CompilerPassScheduler;
MethodParameters:
Name Flags
passes final
public java.util.List<org.jruby.ir.passes.CompilerPass> getCompilerPasses(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRManager.compilerPasses:Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
0 1 1 scope Lorg/jruby/ir/IRScope;
Signature: (Lorg/jruby/ir/IRScope;)Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
MethodParameters:
Name Flags
scope
public java.util.List<org.jruby.ir.passes.CompilerPass> getInliningCompilerPasses(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRManager.inliningCompilerPasses:Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
0 1 1 scope Lorg/jruby/ir/IRScope;
Signature: (Lorg/jruby/ir/IRScope;)Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
MethodParameters:
Name Flags
scope
public java.util.List<org.jruby.ir.passes.CompilerPass> getJITPasses(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRManager.jitPasses:Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
0 1 1 scope Lorg/jruby/ir/IRScope;
Signature: (Lorg/jruby/ir/IRScope;)Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
MethodParameters:
Name Flags
scope
public java.util.List<org.jruby.ir.passes.CompilerPass> getSafePasses(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRManager.safePasses:Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
0 1 1 scope Lorg/jruby/ir/IRScope;
Signature: (Lorg/jruby/ir/IRScope;)Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;
MethodParameters:
Name Flags
scope
public java.util.Set<org.jruby.ir.passes.CompilerPassListener> getListeners();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.jruby.RubyInstanceConfig.IR_COMPILER_DEBUG:Z
ifeq 3
1: aload 0
aload 0
getfield org.jruby.ir.IRManager.defaultListener:Lorg/jruby/ir/passes/CompilerPassListener;
invokevirtual org.jruby.ir.IRManager.addListener:(Lorg/jruby/ir/passes/CompilerPassListener;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.jruby.ir.IRManager.defaultListener:Lorg/jruby/ir/passes/CompilerPassListener;
invokevirtual org.jruby.ir.IRManager.removeListener:(Lorg/jruby/ir/passes/CompilerPassListener;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRManager.passListeners:Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRManager;
Signature: ()Ljava/util/Set<Lorg/jruby/ir/passes/CompilerPassListener;>;
public org.jruby.ir.listeners.InstructionsListener getInstructionsListener();
descriptor: ()Lorg/jruby/ir/listeners/InstructionsListener;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.instrsListener:Lorg/jruby/ir/listeners/InstructionsListener;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public org.jruby.ir.listeners.IRScopeListener getIRScopeListener();
descriptor: ()Lorg/jruby/ir/listeners/IRScopeListener;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.irScopeListener:Lorg/jruby/ir/listeners/IRScopeListener;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public void addListener(org.jruby.ir.passes.CompilerPassListener);
descriptor: (Lorg/jruby/ir/passes/CompilerPassListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRManager.passListeners:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRManager;
0 2 1 listener Lorg/jruby/ir/passes/CompilerPassListener;
MethodParameters:
Name Flags
listener
public void removeListener(org.jruby.ir.passes.CompilerPassListener);
descriptor: (Lorg/jruby/ir/passes/CompilerPassListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRManager.passListeners:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRManager;
0 2 1 listener Lorg/jruby/ir/passes/CompilerPassListener;
MethodParameters:
Name Flags
listener
public void addListener(org.jruby.ir.listeners.InstructionsListener);
descriptor: (Lorg/jruby/ir/listeners/InstructionsListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyInstanceConfig.IR_COMPILER_DEBUG:Z
ifne 1
getstatic org.jruby.RubyInstanceConfig.IR_VISUALIZER:Z
ifeq 4
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRManager.instrsListener:Lorg/jruby/ir/listeners/InstructionsListener;
ifnull 3
2: new java.lang.RuntimeException
dup
ldc "InstructionsListener is set and other are currently not allowed"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.jruby.ir.IRManager.instrsListener:Lorg/jruby/ir/listeners/InstructionsListener;
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRManager;
0 5 1 listener Lorg/jruby/ir/listeners/InstructionsListener;
MethodParameters:
Name Flags
listener
public void removeListener(org.jruby.ir.listeners.InstructionsListener);
descriptor: (Lorg/jruby/ir/listeners/InstructionsListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRManager.instrsListener:Lorg/jruby/ir/listeners/InstructionsListener;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 1
aload 0
aconst_null
putfield org.jruby.ir.IRManager.instrsListener:Lorg/jruby/ir/listeners/InstructionsListener;
1: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRManager;
0 2 1 listener Lorg/jruby/ir/listeners/InstructionsListener;
MethodParameters:
Name Flags
listener
public void addListener(org.jruby.ir.listeners.IRScopeListener);
descriptor: (Lorg/jruby/ir/listeners/IRScopeListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyInstanceConfig.IR_COMPILER_DEBUG:Z
ifne 1
getstatic org.jruby.RubyInstanceConfig.IR_VISUALIZER:Z
ifeq 4
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRManager.irScopeListener:Lorg/jruby/ir/listeners/IRScopeListener;
ifnull 3
2: new java.lang.RuntimeException
dup
ldc "IRScopeListener is set and other are currently not allowed"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.jruby.ir.IRManager.irScopeListener:Lorg/jruby/ir/listeners/IRScopeListener;
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRManager;
0 5 1 listener Lorg/jruby/ir/listeners/IRScopeListener;
MethodParameters:
Name Flags
listener
public java.lang.String getClosurePrefix(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
getstatic org.jruby.ir.IRManager.CLOSURE_PREFIX_CACHE_SIZE:I
if_icmplt 2
1: new java.lang.StringBuilder
dup
ldc "CL"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "_LBL"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRManager.closurePrefixCache:[Ljava/lang/String;
iload 1
aaload
astore 2
start local 2 3: aload 2
ifnonnull 6
4: new java.lang.StringBuilder
dup
ldc "CL"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "_LBL"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
5: aload 0
getfield org.jruby.ir.IRManager.closurePrefixCache:[Ljava/lang/String;
iload 1
aload 2
aastore
6: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/IRManager;
0 7 1 closureId I
3 7 2 prefix Ljava/lang/String;
MethodParameters:
Name Flags
closureId
public org.jruby.ir.operands.Fixnum newFixnum(long);
descriptor: (J)Lorg/jruby/ir/operands/Fixnum;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: lload 1
getstatic org.jruby.ir.IRManager.FIXNUM_CACHE_HALF_SIZE:I
ineg
i2l
lcmp
iflt 1
lload 1
getstatic org.jruby.ir.IRManager.FIXNUM_CACHE_HALF_SIZE:I
i2l
lcmp
ifle 2
StackMap locals:
StackMap stack:
1: new org.jruby.ir.operands.Fixnum
dup
lload 1
invokespecial org.jruby.ir.operands.Fixnum.<init>:(J)V
areturn
2: StackMap locals:
StackMap stack:
lload 1
l2i
getstatic org.jruby.ir.IRManager.FIXNUM_CACHE_HALF_SIZE:I
iadd
istore 3
start local 3 3: iload 3
iflt 9
iload 3
aload 0
getfield org.jruby.ir.IRManager.fixnums:[Lorg/jruby/ir/operands/Fixnum;
arraylength
if_icmpge 9
4: aload 0
getfield org.jruby.ir.IRManager.fixnums:[Lorg/jruby/ir/operands/Fixnum;
iload 3
aaload
astore 4
start local 4 5: aload 4
ifnonnull 10
6: new org.jruby.ir.operands.Fixnum
dup
lload 1
invokespecial org.jruby.ir.operands.Fixnum.<init>:(J)V
astore 4
7: aload 0
getfield org.jruby.ir.IRManager.fixnums:[Lorg/jruby/ir/operands/Fixnum;
iload 3
aload 4
aastore
8: goto 10
end local 4 9: StackMap locals: int
StackMap stack:
new org.jruby.ir.operands.Fixnum
dup
lload 1
invokespecial org.jruby.ir.operands.Fixnum.<init>:(J)V
astore 4
start local 4 10: StackMap locals: org.jruby.ir.operands.Fixnum
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/IRManager;
0 11 1 value J
3 11 3 adjustedValue I
5 9 4 fixnum Lorg/jruby/ir/operands/Fixnum;
10 11 4 fixnum Lorg/jruby/ir/operands/Fixnum;
MethodParameters:
Name Flags
value
public org.jruby.ir.instructions.LineNumberInstr newLineNumber(int);
descriptor: (I)Lorg/jruby/ir/instructions/LineNumberInstr;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.jruby.ir.IRManager.lineNumbers:[Lorg/jruby/ir/instructions/LineNumberInstr;
arraylength
iconst_1
isub
if_icmplt 1
aload 0
iload 1
invokevirtual org.jruby.ir.IRManager.growLineNumbersPool:(I)[Lorg/jruby/ir/instructions/LineNumberInstr;
pop
1: StackMap locals:
StackMap stack:
iload 1
ifge 2
iconst_0
istore 1
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRManager.lineNumbers:[Lorg/jruby/ir/instructions/LineNumberInstr;
iload 1
aaload
astore 2
start local 2 3: aload 2
ifnonnull 6
4: new org.jruby.ir.instructions.LineNumberInstr
dup
iload 1
invokespecial org.jruby.ir.instructions.LineNumberInstr.<init>:(I)V
astore 2
5: aload 0
getfield org.jruby.ir.IRManager.lineNumbers:[Lorg/jruby/ir/instructions/LineNumberInstr;
iload 1
aload 2
aastore
6: StackMap locals: org.jruby.ir.instructions.LineNumberInstr
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/IRManager;
0 7 1 line I
3 7 2 tempVar Lorg/jruby/ir/instructions/LineNumberInstr;
MethodParameters:
Name Flags
line
public org.jruby.ir.instructions.ReceiveSelfInstr getReceiveSelfInstr();
descriptor: ()Lorg/jruby/ir/instructions/ReceiveSelfInstr;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.receiveSelfInstr:Lorg/jruby/ir/instructions/ReceiveSelfInstr;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
protected org.jruby.ir.instructions.LineNumberInstr[] growLineNumbersPool(int);
descriptor: (I)[Lorg/jruby/ir/instructions/LineNumberInstr;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: iload 1
iconst_2
imul
istore 2
start local 2 1: iload 2
anewarray org.jruby.ir.instructions.LineNumberInstr
astore 3
start local 3 2: aload 0
getfield org.jruby.ir.IRManager.lineNumbers:[Lorg/jruby/ir/instructions/LineNumberInstr;
iconst_0
aload 3
iconst_0
aload 0
getfield org.jruby.ir.IRManager.lineNumbers:[Lorg/jruby/ir/instructions/LineNumberInstr;
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 0
aload 3
putfield org.jruby.ir.IRManager.lineNumbers:[Lorg/jruby/ir/instructions/LineNumberInstr;
4: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRManager;
0 5 1 index I
1 5 2 newLength I
2 5 3 newPool [Lorg/jruby/ir/instructions/LineNumberInstr;
MethodParameters:
Name Flags
index
public void removeListener(org.jruby.ir.listeners.IRScopeListener);
descriptor: (Lorg/jruby/ir/listeners/IRScopeListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.IRManager.irScopeListener:Lorg/jruby/ir/listeners/IRScopeListener;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 1
aload 0
aconst_null
putfield org.jruby.ir.IRManager.irScopeListener:Lorg/jruby/ir/listeners/IRScopeListener;
1: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/IRManager;
0 2 1 listener Lorg/jruby/ir/listeners/IRScopeListener;
MethodParameters:
Name Flags
listener
public org.jruby.RubySymbol getMetaClassName();
descriptor: ()Lorg/jruby/RubySymbol;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "<DUMMY_MC:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
dup
getfield org.jruby.ir.IRManager.dummyMetaClassCount:I
dup_x1
iconst_1
iadd
putfield org.jruby.ir.IRManager.dummyMetaClassCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ">"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
protected org.jruby.ir.operands.TemporaryLocalVariable[] growTemporaryVariablePool(int);
descriptor: (I)[Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: iload 1
iconst_2
imul
istore 2
start local 2 1: iload 2
anewarray org.jruby.ir.operands.TemporaryLocalVariable
astore 3
start local 3 2: aload 0
getfield org.jruby.ir.IRManager.temporaryLocalVariables:[Lorg/jruby/ir/operands/TemporaryLocalVariable;
iconst_0
aload 3
iconst_0
aload 0
getfield org.jruby.ir.IRManager.temporaryLocalVariables:[Lorg/jruby/ir/operands/TemporaryLocalVariable;
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 0
aload 3
putfield org.jruby.ir.IRManager.temporaryLocalVariables:[Lorg/jruby/ir/operands/TemporaryLocalVariable;
4: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/IRManager;
0 5 1 index I
1 5 2 newLength I
2 5 3 newPool [Lorg/jruby/ir/operands/TemporaryLocalVariable;
MethodParameters:
Name Flags
index
public org.jruby.ir.operands.TemporaryLocalVariable newTemporaryLocalVariable(int);
descriptor: (I)Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.jruby.ir.IRManager.temporaryLocalVariables:[Lorg/jruby/ir/operands/TemporaryLocalVariable;
arraylength
iconst_1
isub
if_icmplt 1
aload 0
iload 1
invokevirtual org.jruby.ir.IRManager.growTemporaryVariablePool:(I)[Lorg/jruby/ir/operands/TemporaryLocalVariable;
pop
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRManager.temporaryLocalVariables:[Lorg/jruby/ir/operands/TemporaryLocalVariable;
iload 1
aaload
astore 2
start local 2 2: aload 2
ifnonnull 5
3: new org.jruby.ir.operands.TemporaryLocalVariable
dup
iload 1
invokespecial org.jruby.ir.operands.TemporaryLocalVariable.<init>:(I)V
astore 2
4: aload 0
getfield org.jruby.ir.IRManager.temporaryLocalVariables:[Lorg/jruby/ir/operands/TemporaryLocalVariable;
iload 1
aload 2
aastore
5: StackMap locals: org.jruby.ir.operands.TemporaryLocalVariable
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ir/IRManager;
0 6 1 index I
2 6 2 tempVar Lorg/jruby/ir/operands/TemporaryLocalVariable;
MethodParameters:
Name Flags
index
protected void optimizeIfSimpleScope(org.jruby.ir.IRScope);
descriptor: (Lorg/jruby/ir/IRScope;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.jruby.RubyInstanceConfig.IR_COMPILER_PASSES:Ljava/lang/String;
ifnull 1
return
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
astore 2
start local 2 2: aload 2
getstatic org.jruby.ir.IRFlags.REQUIRES_DYNSCOPE:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifne 6
3: aload 2
getstatic org.jruby.ir.IRFlags.RECEIVES_CLOSURE_ARG:Lorg/jruby/ir/IRFlags;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 4
aload 0
getfield org.jruby.ir.IRManager.optimizeDelegationPass:Lorg/jruby/ir/passes/CompilerPass;
aload 1
invokevirtual org.jruby.ir.passes.CompilerPass.run:(Lorg/jruby/ir/IRScope;)Ljava/lang/Object;
pop
4: StackMap locals: java.util.EnumSet
StackMap stack:
aload 0
getfield org.jruby.ir.IRManager.deadCodeEliminationPass:Lorg/jruby/ir/passes/CompilerPass;
aload 1
invokevirtual org.jruby.ir.passes.CompilerPass.run:(Lorg/jruby/ir/IRScope;)Ljava/lang/Object;
pop
5: aload 0
getfield org.jruby.ir.IRManager.optimizeDynScopesPass:Lorg/jruby/ir/passes/CompilerPass;
aload 1
invokevirtual org.jruby.ir.passes.CompilerPass.run:(Lorg/jruby/ir/IRScope;)Ljava/lang/Object;
pop
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ir/IRManager;
0 7 1 scope Lorg/jruby/ir/IRScope;
2 7 2 flags Ljava/util/EnumSet<Lorg/jruby/ir/IRFlags;>;
MethodParameters:
Name Flags
scope
public org.jruby.RubyInstanceConfig getInstanceConfig();
descriptor: ()Lorg/jruby/RubyInstanceConfig;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRManager.config:Lorg/jruby/RubyInstanceConfig;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRManager;
public org.jruby.ir.IRMethod loadInternalMethod(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, java.lang.String);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;)Lorg/jruby/ir/IRMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
astore 4
start local 4 1: new java.lang.StringBuilder
dup
ldc "classpath:/jruby/ruby_implementations/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".rb"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
start local 5 2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 5
invokestatic org.jruby.util.JRubyFile.createResourceAsFile:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/util/FileResource;
astore 6
start local 6 3: aload 0
aload 1
aload 6
aload 5
invokevirtual org.jruby.ir.IRManager.parse:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/FileResource;Ljava/lang/String;)Lorg/jruby/ast/Node;
astore 7
start local 7 4: aload 7
invokevirtual org.jruby.ast.Node.childNodes:()Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.jruby.ast.IScopingNode
astore 8
start local 8 5: aload 8
invokeinterface org.jruby.ast.IScopingNode.getScope:()Lorg/jruby/parser/StaticScope;
aload 4
invokevirtual org.jruby.parser.StaticScope.setModule:(Lorg/jruby/RubyModule;)V
6: aload 8
invokeinterface org.jruby.ast.IScopingNode.getBodyNode:()Lorg/jruby/ast/Node;
checkcast org.jruby.ast.DefNode
astore 9
start local 9 7: new org.jruby.ir.IRScriptBody
dup
aload 0
aload 7
invokevirtual org.jruby.ast.Node.getFile:()Ljava/lang/String;
aload 7
checkcast org.jruby.ast.RootNode
invokevirtual org.jruby.ast.RootNode.getStaticScope:()Lorg/jruby/parser/StaticScope;
invokespecial org.jruby.ir.IRScriptBody.<init>:(Lorg/jruby/ir/IRManager;Ljava/lang/String;Lorg/jruby/parser/StaticScope;)V
astore 10
start local 10 8: aload 8
instanceof org.jruby.ast.ModuleNode
ifeq 11
9: new org.jruby.ir.IRModuleBody
dup
aload 0
aload 10
aload 8
invokeinterface org.jruby.ast.IScopingNode.getCPath:()Lorg/jruby/ast/Colon3Node;
invokevirtual org.jruby.ast.Colon3Node.getName:()Lorg/jruby/RubySymbol;
invokevirtual org.jruby.RubySymbol.getBytes:()Lorg/jruby/util/ByteList;
iconst_0
aload 8
invokeinterface org.jruby.ast.IScopingNode.getScope:()Lorg/jruby/parser/StaticScope;
iconst_0
invokespecial org.jruby.ir.IRModuleBody.<init>:(Lorg/jruby/ir/IRManager;Lorg/jruby/ir/IRScope;Lorg/jruby/util/ByteList;ILorg/jruby/parser/StaticScope;Z)V
astore 11
start local 11 10: goto 12
end local 11 11: StackMap locals: org.jruby.ir.IRManager org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.String org.jruby.RubyModule java.lang.String org.jruby.util.FileResource org.jruby.ast.Node org.jruby.ast.IScopingNode org.jruby.ast.DefNode org.jruby.ir.IRScriptBody
StackMap stack:
new org.jruby.ir.IRClassBody
dup
aload 0
aload 10
aload 8
invokeinterface org.jruby.ast.IScopingNode.getCPath:()Lorg/jruby/ast/Colon3Node;
invokevirtual org.jruby.ast.Colon3Node.getName:()Lorg/jruby/RubySymbol;
invokevirtual org.jruby.RubySymbol.getBytes:()Lorg/jruby/util/ByteList;
iconst_0
aload 8
invokeinterface org.jruby.ast.IScopingNode.getScope:()Lorg/jruby/parser/StaticScope;
iconst_0
invokespecial org.jruby.ir.IRClassBody.<init>:(Lorg/jruby/ir/IRManager;Lorg/jruby/ir/IRScope;Lorg/jruby/util/ByteList;ILorg/jruby/parser/StaticScope;Z)V
astore 11
start local 11 12: StackMap locals: org.jruby.ir.IRModuleBody
StackMap stack:
new org.jruby.ir.IRMethod
dup
aload 0
aload 11
aload 9
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
invokevirtual org.jruby.RubySymbol.getBytes:()Lorg/jruby/util/ByteList;
iconst_1
iconst_0
aload 9
invokeinterface org.jruby.ast.DefNode.getScope:()Lorg/jruby/parser/StaticScope;
iconst_0
invokespecial org.jruby.ir.IRMethod.<init>:(Lorg/jruby/ir/IRManager;Lorg/jruby/ir/IRScope;Lorg/jruby/ast/DefNode;Lorg/jruby/util/ByteList;ZILorg/jruby/parser/StaticScope;Z)V
astore 12
start local 12 13: aload 12
invokevirtual org.jruby.ir.IRMethod.prepareForCompilation:()[Lorg/jruby/ir/representations/BasicBlock;
pop
14: aload 12
15: areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 16: StackMap locals: org.jruby.ir.IRManager org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.String
StackMap stack: java.io.IOException
astore 4
start local 4 17: aload 4
invokevirtual java.io.IOException.printStackTrace:()V
18: aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/jruby/ir/IRManager;
0 19 1 context Lorg/jruby/runtime/ThreadContext;
0 19 2 self Lorg/jruby/runtime/builtin/IRubyObject;
0 19 3 method Ljava/lang/String;
1 16 4 type Lorg/jruby/RubyModule;
2 16 5 fileName Ljava/lang/String;
3 16 6 file Lorg/jruby/util/FileResource;
4 16 7 parseResult Lorg/jruby/ast/Node;
5 16 8 scopeNode Lorg/jruby/ast/IScopingNode;
7 16 9 defNode Lorg/jruby/ast/DefNode;
8 16 10 script Lorg/jruby/ir/IRScriptBody;
10 11 11 containingScope Lorg/jruby/ir/IRModuleBody;
12 16 11 containingScope Lorg/jruby/ir/IRModuleBody;
13 16 12 newMethod Lorg/jruby/ir/IRMethod;
17 19 4 e Ljava/io/IOException;
Exception table:
from to target type
0 15 16 Class java.io.IOException
MethodParameters:
Name Flags
context
self
method
private org.jruby.ast.Node parse(org.jruby.runtime.ThreadContext, org.jruby.util.FileResource, java.lang.String);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/util/FileResource;Ljava/lang/String;)Lorg/jruby/ast/Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
aconst_null
astore 5
1: aload 2
invokeinterface org.jruby.util.FileResource.openInputStream:()Ljava/io/InputStream;
astore 6
start local 6 2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 6
aload 3
aconst_null
iconst_0
invokevirtual org.jruby.Ruby.parseFile:(Ljava/io/InputStream;Ljava/lang/String;Lorg/jruby/runtime/DynamicScope;I)Lorg/jruby/ast/Node;
3: aload 6
ifnull 4
aload 6
invokevirtual java.io.InputStream.close:()V
4: StackMap locals: org.jruby.ir.IRManager org.jruby.runtime.ThreadContext org.jruby.util.FileResource java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: org.jruby.ast.Node
areturn
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 4
6: aload 6
ifnull 7
aload 6
invokevirtual java.io.InputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
7: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 5
aload 4
ifnonnull 9
aload 5
astore 4
goto 10
StackMap locals:
StackMap stack:
9: aload 4
aload 5
if_acmpeq 10
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 4
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/IRManager;
0 11 1 context Lorg/jruby/runtime/ThreadContext;
0 11 2 file Lorg/jruby/util/FileResource;
0 11 3 fileName Ljava/lang/String;
2 7 6 stream Ljava/io/InputStream;
Exception table:
from to target type
2 3 5 any
1 4 8 any
5 8 8 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
file
fileName
}
SourceFile: "IRManager.java"
NestMembers:
org.jruby.ir.IRManager$1
InnerClasses:
org.jruby.ir.IRManager$1