public class org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode extends org.jruby.ir.dataflow.FlowGraphNode<org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem, org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode
super_class: org.jruby.ir.dataflow.FlowGraphNode
{
org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState inState;
descriptor: Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
flags: (0x0000)
org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState outState;
descriptor: Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
flags: (0x0000)
org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState tmpState;
descriptor: Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
flags: (0x0000)
private static volatile int[] $SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem, org.jruby.ir.representations.BasicBlock);
descriptor: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;Lorg/jruby/ir/representations/BasicBlock;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.jruby.ir.dataflow.FlowGraphNode.<init>:(Lorg/jruby/ir/dataflow/DataFlowProblem;Lorg/jruby/ir/representations/BasicBlock;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 2 1 prob Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;
0 2 2 n Lorg/jruby/ir/representations/BasicBlock;
MethodParameters:
Name Flags
prob
n
public void init();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
new org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState
dup
invokespecial org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.<init>:()V
putfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.outState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
public void buildDataFlowVars(org.jruby.ir.instructions.Instr);
descriptor: (Lorg/jruby/ir/instructions/Instr;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 1 1 i Lorg/jruby/ir/instructions/Instr;
MethodParameters:
Name Flags
i
public void applyPreMeetHandler();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getScope:()Lorg/jruby/ir/IRScope;
instanceof org.jruby.ir.IRClosure
ifeq 4
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.isEntryBB:()Z
ifeq 4
1: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
ifnonnull 5
2: aload 0
new org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState
dup
invokespecial org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.<init>:()V
putfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
new org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState
dup
invokespecial org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.<init>:()V
putfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
public void compute_MEET(org.jruby.dirgra.Edge, org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode);
descriptor: (Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.isRescueEntry:()Z
ifne 1
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.outState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.computeMEET:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;)V
1: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 2 1 e Lorg/jruby/dirgra/Edge;
0 2 2 pred Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
MethodParameters:
Name Flags
e
pred
private java.lang.Class getOperandType(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState, org.jruby.ir.operands.Operand);
descriptor: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Operand;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.jruby.ir.operands.Float
ifeq 2
1: ldc Lorg/jruby/ir/operands/Float;
areturn
2: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.ir.operands.Fixnum
ifeq 4
3: ldc Lorg/jruby/ir/operands/Fixnum;
areturn
4: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.ir.operands.Bignum
ifeq 6
5: ldc Lorg/jruby/ir/operands/Bignum;
areturn
6: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.ir.operands.Boolean
ifeq 8
7: ldc Lorg/jruby/ir/operands/Boolean;
areturn
8: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.ir.operands.Variable
ifeq 10
9: aload 1
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.types:Ljava/util/Map;
aload 2
checkcast org.jruby.ir.operands.Variable
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
areturn
10: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 11 1 state Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
0 11 2 o Lorg/jruby/ir/operands/Operand;
MethodParameters:
Name Flags
state
o
private void setOperandType(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState, org.jruby.ir.operands.Variable, java.lang.Class);
descriptor: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Variable;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
ifnull 2
aload 3
ifnull 2
1: aload 1
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.types:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 3 1 state Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
0 3 2 v Lorg/jruby/ir/operands/Variable;
0 3 3 newType Ljava/lang/Class;
MethodParameters:
Name Flags
state
v
newType
private void markLocalVariables(java.util.Collection<org.jruby.ir.operands.Variable>, java.util.Set<org.jruby.ir.operands.Variable>);
descriptor: (Ljava/util/Collection;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 3
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Collection java.util.Set top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 3
start local 3 2: aload 3
instanceof org.jruby.ir.operands.LocalVariable
ifeq 3
aload 1
aload 3
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 3 3: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 5 1 varsToBox Ljava/util/Collection<Lorg/jruby/ir/operands/Variable;>;
0 5 2 varsToCheck Ljava/util/Set<Lorg/jruby/ir/operands/Variable;>;
2 3 3 v Lorg/jruby/ir/operands/Variable;
Signature: (Ljava/util/Collection<Lorg/jruby/ir/operands/Variable;>;Ljava/util/Set<Lorg/jruby/ir/operands/Variable;>;)V
MethodParameters:
Name Flags
varsToBox
varsToCheck
private void updateUnboxedVarsInfoForBoxedInstr(org.jruby.ir.instructions.Instr, org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState, org.jruby.ir.operands.Variable, boolean, boolean);
descriptor: (Lorg/jruby/ir/instructions/Instr;Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Variable;ZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 6
start local 6 1: aload 1
invokevirtual org.jruby.ir.instructions.Instr.canRaiseException:()Z
ifeq 8
2: iload 4
ifeq 5
3: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
4: goto 8
StackMap locals: java.util.HashSet
StackMap stack:
5: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getScope:()Lorg/jruby/ir/IRScope;
instanceof org.jruby.ir.IRClosure
ifeq 8
6: aload 0
aload 6
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.markLocalVariables:(Ljava/util/Collection;Ljava/util/Set;)V
7: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 6
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
8: StackMap locals:
StackMap stack:
iload 5
ifeq 14
9: aload 0
aload 6
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.markLocalVariables:(Ljava/util/Collection;Ljava/util/Set;)V
10: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 6
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
11: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 7
start local 7 12: aload 0
aload 7
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.markLocalVariables:(Ljava/util/Collection;Ljava/util/Set;)V
13: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aload 7
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
end local 7 14: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
astore 7
start local 7 15: aload 7
getstatic org.jruby.ir.Operation.B_TRUE:Lorg/jruby/ir/Operation;
if_acmpeq 16
aload 7
getstatic org.jruby.ir.Operation.B_FALSE:Lorg/jruby/ir/Operation;
if_acmpeq 16
iconst_0
goto 17
StackMap locals: org.jruby.ir.Operation
StackMap stack:
16: iconst_1
StackMap locals:
StackMap stack: int
17: istore 8
start local 8 18: iload 8
ifne 20
19: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 1
invokevirtual org.jruby.ir.instructions.Instr.getUsedVariables:()Ljava/util/List;
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
20: StackMap locals: int
StackMap stack:
aload 3
ifnull 23
21: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
23: StackMap locals:
StackMap stack:
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 24 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 24 1 i Lorg/jruby/ir/instructions/Instr;
0 24 2 state Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
0 24 3 dst Lorg/jruby/ir/operands/Variable;
0 24 4 hasRescuer Z
0 24 5 isDFBarrier Z
1 24 6 varsToBox Ljava/util/HashSet<Lorg/jruby/ir/operands/Variable;>;
12 14 7 lvs Ljava/util/List<Lorg/jruby/ir/operands/Variable;>;
15 24 7 op Lorg/jruby/ir/Operation;
18 24 8 isBranch Z
MethodParameters:
Name Flags
i
state
dst
hasRescuer
isDFBarrier
public void initSolution();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState
dup
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
invokespecial org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.<init>:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;)V
putfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
public void applyTransferFunction(org.jruby.ir.instructions.Instr);
descriptor: (Lorg/jruby/ir/instructions/Instr;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: ldc Ljava/lang/Object;
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: aload 1
instanceof org.jruby.ir.instructions.ResultInstr
ifeq 6
5: aload 1
checkcast org.jruby.ir.instructions.ResultInstr
invokeinterface org.jruby.ir.instructions.ResultInstr.getResult:()Lorg/jruby/ir/operands/Variable;
astore 2
6: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.operands.Variable java.lang.Class int int
StackMap stack:
aload 1
instanceof org.jruby.ir.instructions.CopyInstr
ifeq 14
7: aload 1
checkcast org.jruby.ir.instructions.CopyInstr
invokevirtual org.jruby.ir.instructions.CopyInstr.getSource:()Lorg/jruby/ir/operands/Operand;
astore 6
start local 6 8: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 6
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getOperandType:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Operand;)Ljava/lang/Class;
astore 7
start local 7 9: aload 7
astore 3
10: aload 7
ldc Lorg/jruby/ir/operands/Float;
if_acmpeq 11
aload 7
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpne 12
11: StackMap locals: org.jruby.ir.operands.Operand java.lang.Class
StackMap stack:
iconst_1
istore 4
12: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 13: goto 58
StackMap locals:
StackMap stack:
14: aload 1
instanceof org.jruby.ir.instructions.ClosureAcceptingInstr
ifeq 58
15: aload 1
checkcast org.jruby.ir.instructions.ClosureAcceptingInstr
invokeinterface org.jruby.ir.instructions.ClosureAcceptingInstr.getClosureArg:()Lorg/jruby/ir/operands/Operand;
astore 6
start local 6 16: aload 1
instanceof org.jruby.ir.instructions.CallBase
ifeq 37
aload 6
ifnonnull 37
17: aload 1
checkcast org.jruby.ir.instructions.CallBase
astore 7
start local 7 18: aload 7
invokevirtual org.jruby.ir.instructions.CallBase.getId:()Ljava/lang/String;
astore 8
start local 8 19: aload 7
invokevirtual org.jruby.ir.instructions.CallBase.getReceiver:()Lorg/jruby/ir/operands/Operand;
astore 9
start local 9 20: aload 2
ifnull 58
aload 7
invokevirtual org.jruby.ir.instructions.CallBase.getArgsCount:()I
iconst_1
if_icmpne 58
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 8
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.isUnboxableMethod:(Ljava/lang/String;)Z
ifeq 58
21: aload 7
invokevirtual org.jruby.ir.instructions.CallBase.getArg1:()Lorg/jruby/ir/operands/Operand;
astore 10
start local 10 22: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 9
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getOperandType:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Operand;)Ljava/lang/Class;
astore 11
start local 11 23: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 10
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getOperandType:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Operand;)Ljava/lang/Class;
astore 12
start local 12 24: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 8
aload 11
aload 12
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.acceptsArgTypes:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 34
25: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 8
aload 11
aload 12
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getUnboxedType:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
astore 13
start local 13 26: iconst_1
istore 4
27: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 8
aload 13
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getUnboxedResultType:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Class;
astore 3
28: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
29: aload 9
instanceof org.jruby.ir.operands.Variable
ifeq 31
30: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 9
checkcast org.jruby.ir.operands.Variable
aload 13
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
31: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.operands.Variable java.lang.Class int int org.jruby.ir.operands.Operand org.jruby.ir.instructions.CallBase java.lang.String org.jruby.ir.operands.Operand org.jruby.ir.operands.Operand java.lang.Class java.lang.Class java.lang.Class
StackMap stack:
aload 10
instanceof org.jruby.ir.operands.Variable
ifeq 58
32: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 10
checkcast org.jruby.ir.operands.Variable
aload 13
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 13 33: goto 58
StackMap locals:
StackMap stack:
34: aload 7
invokevirtual org.jruby.ir.instructions.CallBase.targetRequiresCallersBinding:()Z
ifeq 58
35: iconst_1
istore 5
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 36: goto 58
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.operands.Variable java.lang.Class int int org.jruby.ir.operands.Operand
StackMap stack:
37: aload 6
instanceof org.jruby.ir.operands.WrappedIRClosure
ifeq 57
38: aload 6
checkcast org.jruby.ir.operands.WrappedIRClosure
invokevirtual org.jruby.ir.operands.WrappedIRClosure.getClosure:()Lorg/jruby/ir/IRClosure;
astore 7
start local 7 39: aload 7
invokevirtual org.jruby.ir.IRClosure.getUnboxableOpsAnalysisProblem:()Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;
astore 8
start local 8 40: aload 8
ifnonnull 44
41: new org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
dup
invokespecial org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.<init>:()V
astore 8
42: aload 8
aload 7
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.setup:(Lorg/jruby/ir/IRScope;)V
43: aload 7
aload 8
invokevirtual org.jruby.ir.IRClosure.putUnboxableOpsAnalysisProblem:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;)V
44: StackMap locals: org.jruby.ir.IRClosure org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
StackMap stack:
aload 8
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getExitNode:()Lorg/jruby/ir/dataflow/FlowGraphNode;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode
astore 9
start local 9 45: aload 8
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getEntryNode:()Lorg/jruby/ir/dataflow/FlowGraphNode;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode
astore 10
start local 10 46: aload 10
new org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState
dup
invokespecial org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.<init>:()V
putfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
47: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.types:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 12
goto 51
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.operands.Variable java.lang.Class int int org.jruby.ir.operands.Operand org.jruby.ir.IRClosure org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode top java.util.Iterator
StackMap stack:
48: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 11
start local 11 49: aload 11
instanceof org.jruby.ir.operands.LocalVariable
ifeq 51
50: aload 10
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.types:Ljava/util/Map;
aload 11
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.types:Ljava/util/Map;
aload 11
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 51: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 48
52: aload 10
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 9
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.outState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.computeMEET:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;)V
53: aload 8
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.compute_MOP_Solution:()V
54: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 9
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.outState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
iconst_1
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.computeMEETForTypes:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Z)V
55: iconst_1
istore 5
end local 10 end local 9 end local 8 end local 7 56: goto 58
57: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.operands.Variable java.lang.Class int int org.jruby.ir.operands.Operand
StackMap stack:
iconst_1
istore 5
end local 6 58: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 2
aload 3
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.setOperandType:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Variable;Ljava/lang/Class;)V
59: iload 4
ifeq 62
60: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 2
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
61: goto 63
62: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 2
aload 0
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.hasExceptionsRescued:()Z
iload 5
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.updateUnboxedVarsInfoForBoxedInstr:(Lorg/jruby/ir/instructions/Instr;Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Variable;ZZ)V
63: StackMap locals:
StackMap stack:
return
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 64 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 64 1 i Lorg/jruby/ir/instructions/Instr;
1 64 2 dst Lorg/jruby/ir/operands/Variable;
2 64 3 dstType Ljava/lang/Class;
3 64 4 unboxedAndDirty Z
4 64 5 hitDFBarrier Z
8 13 6 src Lorg/jruby/ir/operands/Operand;
9 13 7 srcType Ljava/lang/Class;
16 58 6 o Lorg/jruby/ir/operands/Operand;
18 36 7 c Lorg/jruby/ir/instructions/CallBase;
19 36 8 m Ljava/lang/String;
20 36 9 r Lorg/jruby/ir/operands/Operand;
22 36 10 a Lorg/jruby/ir/operands/Operand;
23 36 11 receiverType Ljava/lang/Class;
24 36 12 argType Ljava/lang/Class;
26 33 13 unboxedType Ljava/lang/Class;
39 56 7 cl Lorg/jruby/ir/IRClosure;
40 56 8 subProblem Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;
45 56 9 exitNode Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
46 56 10 entryNode Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
49 51 11 v Lorg/jruby/ir/operands/Variable;
MethodParameters:
Name Flags
i
public boolean solutionChanged();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.outState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.equals:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
public void finalizeSolution();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
putfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.outState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
private boolean matchingTypes(java.lang.Class, org.jruby.ir.operands.TemporaryVariableType);
descriptor: (Ljava/lang/Class;Lorg/jruby/ir/operands/TemporaryVariableType;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.$SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType:()[I
aload 2
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iaload
tableswitch { // 2 - 4
2: 5
3: 1
4: 3
default: 7
}
1: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/jruby/ir/operands/Float;
if_acmpne 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpne 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 1
ldc Ljava/lang/Boolean;
if_acmpne 6
iconst_1
ireturn
StackMap locals:
StackMap stack:
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 1
ldc Lorg/jruby/ir/operands/Float;
if_acmpeq 8
aload 1
ldc Ljava/lang/Boolean;
if_acmpeq 8
aload 1
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpeq 8
iconst_1
ireturn
StackMap locals:
StackMap stack:
8: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 9 1 c Ljava/lang/Class;
0 9 2 t Lorg/jruby/ir/operands/TemporaryVariableType;
MethodParameters:
Name Flags
c
t
private org.jruby.ir.operands.TemporaryLocalVariable getUnboxedVar(java.lang.Class, java.util.Map<org.jruby.ir.operands.Variable, org.jruby.ir.operands.TemporaryLocalVariable>, org.jruby.ir.operands.Variable, boolean);
descriptor: (Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;Z)Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.ir.operands.TemporaryLocalVariable
astore 5
start local 5 1: aload 5
ifnonnull 2
iload 4
ifne 3
StackMap locals: org.jruby.ir.operands.TemporaryLocalVariable
StackMap stack:
2: aload 0
aload 1
aload 5
invokevirtual org.jruby.ir.operands.TemporaryLocalVariable.getType:()Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.matchingTypes:(Ljava/lang/Class;Lorg/jruby/ir/operands/TemporaryVariableType;)Z
ifne 6
3: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getScope:()Lorg/jruby/ir/IRScope;
aload 1
invokevirtual org.jruby.ir.IRScope.getNewUnboxedVariable:(Ljava/lang/Class;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
astore 5
4: aload 2
aload 3
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: goto 8
StackMap locals:
StackMap stack:
6: aload 5
ifnonnull 8
7: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "ERROR: No unboxed var for : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: StackMap locals:
StackMap stack:
aload 5
areturn
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 9 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 9 1 reqdType Ljava/lang/Class;
0 9 2 unboxMap Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;
0 9 3 v Lorg/jruby/ir/operands/Variable;
0 9 4 createNew Z
1 9 5 unboxedVar Lorg/jruby/ir/operands/TemporaryLocalVariable;
Signature: (Ljava/lang/Class;Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;Lorg/jruby/ir/operands/Variable;Z)Lorg/jruby/ir/operands/TemporaryLocalVariable;
MethodParameters:
Name Flags
reqdType
unboxMap
v
createNew
private org.jruby.ir.operands.TemporaryLocalVariable getUnboxedVar(java.lang.Class, java.util.Map<org.jruby.ir.operands.Variable, org.jruby.ir.operands.TemporaryLocalVariable>, org.jruby.ir.operands.Variable);
descriptor: (Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
iconst_1
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedVar:(Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;Z)Lorg/jruby/ir/operands/TemporaryLocalVariable;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 1 1 reqdType Ljava/lang/Class;
0 1 2 unboxMap Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;
0 1 3 v Lorg/jruby/ir/operands/Variable;
Signature: (Ljava/lang/Class;Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
MethodParameters:
Name Flags
reqdType
unboxMap
v
public void boxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState, java.lang.Class, java.util.Map<org.jruby.ir.operands.Variable, org.jruby.ir.operands.TemporaryLocalVariable>, org.jruby.ir.operands.Variable, java.util.List<org.jruby.ir.instructions.Instr>);
descriptor: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 2
aload 3
aload 4
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedVar:(Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
astore 6
start local 6 1: aload 6
invokevirtual org.jruby.ir.operands.TemporaryLocalVariable.getType:()Lorg/jruby/ir/operands/TemporaryVariableType;
astore 7
start local 7 2: aload 7
getstatic org.jruby.ir.operands.TemporaryVariableType.BOOLEAN:Lorg/jruby/ir/operands/TemporaryVariableType;
if_acmpne 5
3: aload 5
new org.jruby.ir.instructions.boxing.BoxBooleanInstr
dup
aload 4
aload 6
invokespecial org.jruby.ir.instructions.boxing.BoxBooleanInstr.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: goto 10
StackMap locals: org.jruby.ir.operands.TemporaryLocalVariable org.jruby.ir.operands.TemporaryVariableType
StackMap stack:
5: aload 7
getstatic org.jruby.ir.operands.TemporaryVariableType.FLOAT:Lorg/jruby/ir/operands/TemporaryVariableType;
if_acmpne 8
6: aload 5
new org.jruby.ir.instructions.boxing.BoxFloatInstr
dup
aload 4
aload 6
invokespecial org.jruby.ir.instructions.boxing.BoxFloatInstr.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: goto 10
StackMap locals:
StackMap stack:
8: aload 7
getstatic org.jruby.ir.operands.TemporaryVariableType.FIXNUM:Lorg/jruby/ir/operands/TemporaryVariableType;
if_acmpne 10
9: aload 5
new org.jruby.ir.instructions.boxing.BoxFixnumInstr
dup
aload 4
aload 6
invokespecial org.jruby.ir.instructions.boxing.BoxFixnumInstr.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
11: return
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 12 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 12 1 state Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
0 12 2 reqdType Ljava/lang/Class;
0 12 3 unboxMap Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;
0 12 4 v Lorg/jruby/ir/operands/Variable;
0 12 5 newInstrs Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
1 12 6 unboxedV Lorg/jruby/ir/operands/TemporaryLocalVariable;
2 12 7 vType Lorg/jruby/ir/operands/TemporaryVariableType;
Signature: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;Lorg/jruby/ir/operands/Variable;Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;)V
MethodParameters:
Name Flags
state
reqdType
unboxMap
v
newInstrs
public void unboxVar(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState, java.lang.Class, java.util.Map<org.jruby.ir.operands.Variable, org.jruby.ir.operands.TemporaryLocalVariable>, org.jruby.ir.operands.Variable, java.util.List<org.jruby.ir.instructions.Instr>);
descriptor: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 2
aload 3
aload 4
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedVar:(Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
astore 6
start local 6 1: aload 2
ldc Ljava/lang/Boolean;
if_acmpne 4
2: aload 5
new org.jruby.ir.instructions.boxing.UnboxBooleanInstr
dup
aload 6
aload 4
invokespecial org.jruby.ir.instructions.boxing.UnboxBooleanInstr.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: goto 9
StackMap locals: org.jruby.ir.operands.Variable
StackMap stack:
4: aload 2
ldc Lorg/jruby/ir/operands/Float;
if_acmpne 7
5: aload 5
new org.jruby.ir.instructions.boxing.UnboxFloatInstr
dup
aload 6
aload 4
invokespecial org.jruby.ir.instructions.boxing.UnboxFloatInstr.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: goto 9
StackMap locals:
StackMap stack:
7: aload 2
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpne 9
8: aload 5
new org.jruby.ir.instructions.boxing.UnboxFixnumInstr
dup
aload 6
aload 4
invokespecial org.jruby.ir.instructions.boxing.UnboxFixnumInstr.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
9: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 4
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: return
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 11 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 11 1 state Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
0 11 2 reqdType Ljava/lang/Class;
0 11 3 unboxMap Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;
0 11 4 v Lorg/jruby/ir/operands/Variable;
0 11 5 newInstrs Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
1 11 6 unboxedV Lorg/jruby/ir/operands/Variable;
Signature: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;Lorg/jruby/ir/operands/Variable;Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;)V
MethodParameters:
Name Flags
state
reqdType
unboxMap
v
newInstrs
private org.jruby.ir.operands.Operand unboxOperand(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState, java.lang.Class, java.util.Map<org.jruby.ir.operands.Variable, org.jruby.ir.operands.TemporaryLocalVariable>, org.jruby.ir.operands.Operand, java.util.List<org.jruby.ir.instructions.Instr>);
descriptor: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Operand;Ljava/util/List;)Lorg/jruby/ir/operands/Operand;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 4
instanceof org.jruby.ir.operands.Variable
ifeq 9
1: aload 4
checkcast org.jruby.ir.operands.Variable
astore 6
start local 6 2: aload 1
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 6
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 2
if_acmpne 3
iconst_1
goto 4
StackMap locals: org.jruby.ir.operands.Variable
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 7
start local 7 5: aload 0
aload 2
aload 3
aload 6
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedVar:(Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
astore 8
start local 8 6: iload 7
ifne 8
7: aload 0
aload 1
aload 2
aload 3
aload 6
aload 5
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.unboxVar:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;Ljava/util/List;)V
8: StackMap locals: int org.jruby.ir.operands.TemporaryLocalVariable
StackMap stack:
aload 8
areturn
end local 8 end local 7 end local 6 9: StackMap locals:
StackMap stack:
aload 4
instanceof org.jruby.ir.operands.Float
ifeq 11
10: new org.jruby.ir.operands.UnboxedFloat
dup
aload 4
checkcast org.jruby.ir.operands.Float
invokevirtual org.jruby.ir.operands.Float.getValue:()D
invokespecial org.jruby.ir.operands.UnboxedFloat.<init>:(D)V
areturn
11: StackMap locals:
StackMap stack:
aload 4
instanceof org.jruby.ir.operands.Fixnum
ifeq 13
12: new org.jruby.ir.operands.UnboxedFixnum
dup
aload 4
checkcast org.jruby.ir.operands.Fixnum
invokevirtual org.jruby.ir.operands.Fixnum.getValue:()J
invokespecial org.jruby.ir.operands.UnboxedFixnum.<init>:(J)V
areturn
13: StackMap locals:
StackMap stack:
aload 4
instanceof org.jruby.ir.operands.Boolean
ifeq 15
14: new org.jruby.ir.operands.UnboxedBoolean
dup
aload 4
checkcast org.jruby.ir.operands.Boolean
invokevirtual org.jruby.ir.operands.Boolean.isTrue:()Z
invokespecial org.jruby.ir.operands.UnboxedBoolean.<init>:(Z)V
areturn
15: StackMap locals:
StackMap stack:
aload 4
areturn
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 16 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 16 1 state Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
0 16 2 reqdType Ljava/lang/Class;
0 16 3 unboxMap Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;
0 16 4 arg Lorg/jruby/ir/operands/Operand;
0 16 5 newInstrs Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
2 9 6 v Lorg/jruby/ir/operands/Variable;
5 9 7 isUnboxed Z
6 9 8 unboxedVar Lorg/jruby/ir/operands/TemporaryLocalVariable;
Signature: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;Lorg/jruby/ir/operands/Operand;Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;)Lorg/jruby/ir/operands/Operand;
MethodParameters:
Name Flags
state
reqdType
unboxMap
arg
newInstrs
private org.jruby.ir.operands.Operand getUnboxedOperand(org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState, java.util.Map<org.jruby.ir.operands.Variable, org.jruby.ir.operands.TemporaryLocalVariable>, org.jruby.ir.operands.Operand);
descriptor: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/util/Map;Lorg/jruby/ir/operands/Operand;)Lorg/jruby/ir/operands/Operand;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
instanceof org.jruby.ir.operands.Variable
ifeq 6
1: aload 3
checkcast org.jruby.ir.operands.Variable
astore 4
start local 4 2: aload 1
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
astore 5
start local 5 3: aload 5
ifnonnull 4
aload 3
goto 5
StackMap locals: org.jruby.ir.operands.Variable java.lang.Class
StackMap stack:
4: aload 0
aload 5
aload 2
aload 4
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedVar:(Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
StackMap locals:
StackMap stack: org.jruby.ir.operands.Operand
5: areturn
end local 5 end local 4 6: StackMap locals:
StackMap stack:
aload 3
instanceof org.jruby.ir.operands.Float
ifeq 8
7: new org.jruby.ir.operands.UnboxedFloat
dup
aload 3
checkcast org.jruby.ir.operands.Float
invokevirtual org.jruby.ir.operands.Float.getValue:()D
invokespecial org.jruby.ir.operands.UnboxedFloat.<init>:(D)V
areturn
8: StackMap locals:
StackMap stack:
aload 3
instanceof org.jruby.ir.operands.Fixnum
ifeq 10
9: new org.jruby.ir.operands.UnboxedFixnum
dup
aload 3
checkcast org.jruby.ir.operands.Fixnum
invokevirtual org.jruby.ir.operands.Fixnum.getValue:()J
invokespecial org.jruby.ir.operands.UnboxedFixnum.<init>:(J)V
areturn
10: StackMap locals:
StackMap stack:
aload 3
instanceof org.jruby.ir.operands.Boolean
ifeq 12
11: new org.jruby.ir.operands.UnboxedBoolean
dup
aload 3
checkcast org.jruby.ir.operands.Boolean
invokevirtual org.jruby.ir.operands.Boolean.isTrue:()Z
invokespecial org.jruby.ir.operands.UnboxedBoolean.<init>:(Z)V
areturn
12: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 13 1 state Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
0 13 2 unboxMap Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;
0 13 3 arg Lorg/jruby/ir/operands/Operand;
2 6 4 v Lorg/jruby/ir/operands/Variable;
3 6 5 unboxedType Ljava/lang/Class;
Signature: (Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;Lorg/jruby/ir/operands/Operand;)Lorg/jruby/ir/operands/Operand;
MethodParameters:
Name Flags
state
unboxMap
arg
private void boxRequiredVars(org.jruby.ir.instructions.Instr, org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState, java.util.Map<org.jruby.ir.operands.Variable, org.jruby.ir.operands.TemporaryLocalVariable>, org.jruby.ir.operands.Variable, boolean, boolean, java.util.List<org.jruby.ir.instructions.Instr>);
descriptor: (Lorg/jruby/ir/instructions/Instr;Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;ZZLjava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=16, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getScope:()Lorg/jruby/ir/IRScope;
instanceof org.jruby.ir.IRClosure
istore 8
start local 8 1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 9
start local 9 2: aload 1
invokevirtual org.jruby.ir.instructions.Instr.canRaiseException:()Z
ifeq 8
3: iload 5
ifeq 6
4: aload 9
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
invokevirtual java.util.HashSet.addAll:(Ljava/util/Collection;)Z
pop
5: goto 8
StackMap locals: int java.util.HashSet
StackMap stack:
6: iload 8
ifeq 8
7: aload 0
aload 9
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.markLocalVariables:(Ljava/util/Collection;Ljava/util/Set;)V
8: StackMap locals:
StackMap stack:
iload 8
ifeq 10
aload 1
instanceof org.jruby.ir.instructions.ReturnInstr
ifne 9
aload 1
instanceof org.jruby.ir.instructions.BreakInstr
ifeq 10
9: StackMap locals:
StackMap stack:
aload 0
aload 9
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.markLocalVariables:(Ljava/util/Collection;Ljava/util/Set;)V
10: StackMap locals:
StackMap stack:
aconst_null
astore 10
start local 10 11: iload 6
ifeq 15
12: aload 0
aload 9
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.markLocalVariables:(Ljava/util/Collection;Ljava/util/Set;)V
13: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 10
14: aload 0
aload 10
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.markLocalVariables:(Ljava/util/Collection;Ljava/util/Set;)V
15: StackMap locals: java.util.List
StackMap stack:
aload 1
invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
astore 11
start local 11 16: aload 11
getstatic org.jruby.ir.Operation.B_TRUE:Lorg/jruby/ir/Operation;
if_acmpeq 17
aload 11
getstatic org.jruby.ir.Operation.B_FALSE:Lorg/jruby/ir/Operation;
if_acmpeq 17
iconst_0
goto 18
StackMap locals: org.jruby.ir.Operation
StackMap stack:
17: iconst_1
StackMap locals:
StackMap stack: int
18: istore 12
start local 12 19: iload 12
ifne 25
20: aload 1
invokevirtual org.jruby.ir.instructions.Instr.getUsedVariables:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 24
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState java.util.Map org.jruby.ir.operands.Variable int int java.util.List int java.util.HashSet java.util.List org.jruby.ir.Operation int top java.util.Iterator
StackMap stack:
21: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 13
start local 13 22: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 13
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 24
23: aload 9
aload 13
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
end local 13 24: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
25: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState java.util.Map org.jruby.ir.operands.Variable int int java.util.List int java.util.HashSet java.util.List org.jruby.ir.Operation int
StackMap stack:
aload 9
invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
astore 14
goto 28
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState java.util.Map org.jruby.ir.operands.Variable int int java.util.List int java.util.HashSet java.util.List org.jruby.ir.Operation int top java.util.Iterator
StackMap stack:
26: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 13
start local 13 27: aload 0
aload 2
aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 13
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
aload 3
aload 13
aload 7
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.boxVar:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;Ljava/util/List;)V
end local 13 28: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
29: iload 12
ifeq 41
30: aload 1
checkcast org.jruby.ir.instructions.OneOperandBranchInstr
astore 13
start local 13 31: aload 13
invokevirtual org.jruby.ir.instructions.OneOperandBranchInstr.getArg1:()Lorg/jruby/ir/operands/Operand;
astore 14
start local 14 32: aload 0
aload 2
aload 3
aload 14
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedOperand:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/util/Map;Lorg/jruby/ir/operands/Operand;)Lorg/jruby/ir/operands/Operand;
astore 15
start local 15 33: aload 15
aload 14
if_acmpne 36
34: aload 7
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
35: goto 42
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode org.jruby.ir.instructions.Instr org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState java.util.Map org.jruby.ir.operands.Variable int int java.util.List int java.util.HashSet java.util.List org.jruby.ir.Operation int org.jruby.ir.instructions.OneOperandBranchInstr org.jruby.ir.operands.Operand org.jruby.ir.operands.Operand
StackMap stack:
36: aload 11
getstatic org.jruby.ir.Operation.B_TRUE:Lorg/jruby/ir/Operation;
if_acmpne 39
37: aload 7
new org.jruby.ir.instructions.BTrueInstr
dup
aload 13
invokevirtual org.jruby.ir.instructions.OneOperandBranchInstr.getJumpTarget:()Lorg/jruby/ir/operands/Label;
aload 15
invokespecial org.jruby.ir.instructions.BTrueInstr.<init>:(Lorg/jruby/ir/operands/Label;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
38: goto 42
39: StackMap locals:
StackMap stack:
aload 7
new org.jruby.ir.instructions.BFalseInstr
dup
aload 13
invokevirtual org.jruby.ir.instructions.OneOperandBranchInstr.getJumpTarget:()Lorg/jruby/ir/operands/Label;
aload 15
invokespecial org.jruby.ir.instructions.BFalseInstr.<init>:(Lorg/jruby/ir/operands/Label;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 15 end local 14 end local 13 40: goto 42
41: StackMap locals:
StackMap stack:
aload 7
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
42: StackMap locals:
StackMap stack:
aload 4
ifnull 45
43: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
44: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
45: StackMap locals:
StackMap stack:
aload 10
ifnull 47
46: aload 2
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aload 10
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
47: StackMap locals:
StackMap stack:
return
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 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 48 1 i Lorg/jruby/ir/instructions/Instr;
0 48 2 state Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
0 48 3 unboxMap Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;
0 48 4 dst Lorg/jruby/ir/operands/Variable;
0 48 5 hasRescuer Z
0 48 6 isDFBarrier Z
0 48 7 newInstrs Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
1 48 8 isClosure Z
2 48 9 varsToBox Ljava/util/HashSet<Lorg/jruby/ir/operands/Variable;>;
11 48 10 boxedLocalVars Ljava/util/List<Lorg/jruby/ir/operands/Variable;>;
16 48 11 op Lorg/jruby/ir/Operation;
19 48 12 isBranch Z
22 24 13 v Lorg/jruby/ir/operands/Variable;
27 28 13 v Lorg/jruby/ir/operands/Variable;
31 40 13 bi Lorg/jruby/ir/instructions/OneOperandBranchInstr;
32 40 14 a Lorg/jruby/ir/operands/Operand;
33 40 15 ua Lorg/jruby/ir/operands/Operand;
Signature: (Lorg/jruby/ir/instructions/Instr;Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;Lorg/jruby/ir/operands/Variable;ZZLjava/util/List<Lorg/jruby/ir/instructions/Instr;>;)V
MethodParameters:
Name Flags
i
state
unboxMap
dst
hasRescuer
isDFBarrier
newInstrs
public void unbox(java.util.Map<org.jruby.ir.operands.Variable, org.jruby.ir.operands.TemporaryLocalVariable>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=24, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getCFG:()Lorg/jruby/ir/representations/CFG;
astore 2
start local 2 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 3
start local 3 2: aload 2
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.CFG.getOutgoingDestinations:(Lorg/jruby/ir/representations/BasicBlock;)Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 10
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.representations.BasicBlock
astore 4
start local 4 4: aload 4
invokevirtual org.jruby.ir.representations.BasicBlock.isExitBB:()Z
ifeq 5
goto 10
5: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.representations.BasicBlock java.util.Iterator
StackMap stack:
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 4
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getFlowGraphNode:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/dataflow/FlowGraphNode;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.inState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
astore 6
start local 6 6: aload 6
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 9
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.representations.BasicBlock java.util.Iterator java.util.Map top java.util.Iterator
StackMap stack:
7: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 7
start local 7 8: aload 3
aload 7
aload 6
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 9: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 6 end local 4 10: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
11: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.outState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 14
StackMap locals:
StackMap stack:
12: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 4
start local 4 13: aload 3
aload 4
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 14: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
15: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getScope:()Lorg/jruby/ir/IRScope;
invokevirtual org.jruby.ir.IRScope.getLiveVariablesProblem:()Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
astore 4
start local 4 16: aload 4
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.dataflow.analyses.LiveVariablesProblem.getFlowGraphNode:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/dataflow/FlowGraphNode;
checkcast org.jruby.ir.dataflow.analyses.LiveVariableNode
invokevirtual org.jruby.ir.dataflow.analyses.LiveVariableNode.getLiveInBitSet:()Ljava/util/BitSet;
astore 5
start local 5 17: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 18: iconst_0
istore 7
start local 7 19: aload 0
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.initSolution:()V
20: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 91
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.BitSet java.util.List int top java.util.Iterator
StackMap stack:
21: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.instructions.Instr
astore 8
start local 8 22: aconst_null
astore 10
start local 10 23: ldc Ljava/lang/Object;
astore 11
start local 11 24: iconst_0
istore 12
start local 12 25: iconst_0
istore 13
start local 13 26: aload 8
invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
invokevirtual org.jruby.ir.Operation.transfersControl:()Z
ifeq 34
27: aload 3
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 15
goto 31
StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.BitSet java.util.List int org.jruby.ir.instructions.Instr java.util.Iterator org.jruby.ir.operands.Variable java.lang.Class int int top java.util.Iterator
StackMap stack:
28: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 14
start local 14 29: aload 5
aload 4
aload 14
invokevirtual org.jruby.ir.dataflow.analyses.LiveVariablesProblem.getDFVar:(Lorg/jruby/ir/operands/Variable;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
invokevirtual java.util.BitSet.get:(I)Z
ifeq 31
30: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 3
aload 14
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
aload 1
aload 14
aload 6
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.unboxVar:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;Ljava/util/List;)V
end local 14 31: StackMap locals:
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
32: iconst_1
istore 7
33: goto 86
34: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.BitSet java.util.List int org.jruby.ir.instructions.Instr java.util.Iterator org.jruby.ir.operands.Variable java.lang.Class int int
StackMap stack:
aload 8
instanceof org.jruby.ir.instructions.ResultInstr
ifeq 36
35: aload 8
checkcast org.jruby.ir.instructions.ResultInstr
invokeinterface org.jruby.ir.instructions.ResultInstr.getResult:()Lorg/jruby/ir/operands/Variable;
astore 10
36: StackMap locals:
StackMap stack:
aload 8
instanceof org.jruby.ir.instructions.CopyInstr
ifeq 49
37: aload 8
checkcast org.jruby.ir.instructions.CopyInstr
invokevirtual org.jruby.ir.instructions.CopyInstr.getSource:()Lorg/jruby/ir/operands/Operand;
astore 14
start local 14 38: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 14
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getOperandType:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Operand;)Ljava/lang/Class;
astore 15
start local 15 39: aload 15
astore 11
40: aload 15
ldc Lorg/jruby/ir/operands/Float;
if_acmpeq 41
aload 15
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpne 47
41: StackMap locals: org.jruby.ir.operands.Operand java.lang.Class
StackMap stack:
aload 14
instanceof org.jruby.ir.operands.Variable
ifeq 42
aload 0
aload 15
aload 1
aload 14
checkcast org.jruby.ir.operands.Variable
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedVar:(Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
goto 43
StackMap locals:
StackMap stack:
42: aload 14
StackMap locals:
StackMap stack: org.jruby.ir.operands.Operand
43: astore 16
start local 16 44: aload 0
aload 15
aload 1
aload 10
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedVar:(Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
astore 17
start local 17 45: aload 6
new org.jruby.ir.instructions.CopyInstr
dup
getstatic org.jruby.ir.Operation.COPY:Lorg/jruby/ir/Operation;
aload 17
aload 16
invokespecial org.jruby.ir.instructions.CopyInstr.<init>:(Lorg/jruby/ir/Operation;Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
46: iconst_1
istore 12
end local 17 end local 16 47: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 10
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 15 end local 14 48: goto 86
StackMap locals:
StackMap stack:
49: aload 8
instanceof org.jruby.ir.instructions.ClosureAcceptingInstr
ifeq 86
50: aload 8
checkcast org.jruby.ir.instructions.ClosureAcceptingInstr
invokeinterface org.jruby.ir.instructions.ClosureAcceptingInstr.getClosureArg:()Lorg/jruby/ir/operands/Operand;
astore 14
start local 14 51: aload 8
instanceof org.jruby.ir.instructions.CallBase
ifeq 76
aload 14
ifnonnull 76
52: aload 8
checkcast org.jruby.ir.instructions.CallBase
astore 15
start local 15 53: aload 15
invokevirtual org.jruby.ir.instructions.CallBase.getId:()Ljava/lang/String;
astore 16
start local 16 54: aload 15
invokevirtual org.jruby.ir.instructions.CallBase.getReceiver:()Lorg/jruby/ir/operands/Operand;
astore 17
start local 17 55: aload 10
ifnull 86
aload 15
invokevirtual org.jruby.ir.instructions.CallBase.getArgsCount:()I
iconst_1
if_icmpne 86
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 16
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.isUnboxableMethod:(Ljava/lang/String;)Z
ifeq 86
56: aload 15
invokevirtual org.jruby.ir.instructions.CallBase.getArg1:()Lorg/jruby/ir/operands/Operand;
astore 18
start local 18 57: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 17
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getOperandType:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Operand;)Ljava/lang/Class;
astore 19
start local 19 58: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 18
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getOperandType:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Operand;)Ljava/lang/Class;
astore 20
start local 20 59: aconst_null
astore 21
start local 21 60: aconst_null
astore 22
start local 22 61: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 16
aload 19
aload 20
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.acceptsArgTypes:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Z
ifeq 64
62: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 16
aload 19
aload 20
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getUnboxedType:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
astore 22
63: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 16
aload 22
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getUnboxedOp:(Ljava/lang/String;Ljava/lang/Class;)Lorg/jruby/ir/Operation;
astore 21
64: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.BitSet java.util.List int org.jruby.ir.instructions.Instr java.util.Iterator org.jruby.ir.operands.Variable java.lang.Class int int org.jruby.ir.operands.Operand org.jruby.ir.instructions.CallBase java.lang.String org.jruby.ir.operands.Operand org.jruby.ir.operands.Operand java.lang.Class java.lang.Class org.jruby.ir.Operation java.lang.Class
StackMap stack:
aload 22
ifnull 73
aload 21
ifnull 73
65: iconst_1
istore 12
66: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem
aload 16
aload 22
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getUnboxedResultType:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Class;
astore 11
67: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedVars:Ljava/util/Map;
aload 10
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
68: aload 0
aload 11
aload 1
aload 10
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.getUnboxedVar:(Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
astore 23
start local 23 69: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 22
aload 1
aload 17
aload 6
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.unboxOperand:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Operand;Ljava/util/List;)Lorg/jruby/ir/operands/Operand;
astore 17
70: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 22
aload 1
aload 18
aload 6
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.unboxOperand:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Operand;Ljava/util/List;)Lorg/jruby/ir/operands/Operand;
astore 18
71: aload 6
new org.jruby.ir.instructions.boxing.AluInstr
dup
aload 21
aload 23
aload 17
aload 18
invokespecial org.jruby.ir.instructions.boxing.AluInstr.<init>:(Lorg/jruby/ir/Operation;Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 23 72: goto 86
StackMap locals:
StackMap stack:
73: aload 15
invokevirtual org.jruby.ir.instructions.CallBase.targetRequiresCallersBinding:()Z
ifeq 86
74: iconst_1
istore 13
end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 75: goto 86
76: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.BitSet java.util.List int org.jruby.ir.instructions.Instr java.util.Iterator org.jruby.ir.operands.Variable java.lang.Class int int org.jruby.ir.operands.Operand
StackMap stack:
aload 14
instanceof org.jruby.ir.operands.WrappedIRClosure
ifeq 85
77: iconst_1
istore 13
78: aload 14
checkcast org.jruby.ir.operands.WrappedIRClosure
invokevirtual org.jruby.ir.operands.WrappedIRClosure.getClosure:()Lorg/jruby/ir/IRClosure;
astore 15
start local 15 79: aload 15
invokevirtual org.jruby.ir.IRClosure.getUnboxableOpsAnalysisProblem:()Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;
astore 16
start local 16 80: aload 16
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.getExitNode:()Lorg/jruby/ir/dataflow/FlowGraphNode;
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode
astore 17
start local 17 81: aload 16
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisProblem.unbox:()V
82: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 17
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.outState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
iconst_1
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.computeMEETForTypes:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Z)V
83: iconst_1
istore 13
end local 17 end local 16 end local 15 84: goto 86
85: StackMap locals:
StackMap stack:
iconst_1
istore 13
end local 14 86: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 10
aload 11
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.setOperandType:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Lorg/jruby/ir/operands/Variable;Ljava/lang/Class;)V
87: iload 12
ifeq 90
88: aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState.unboxedDirtyVars:Ljava/util/Set;
aload 10
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
89: goto 91
90: StackMap locals:
StackMap stack:
aload 0
aload 8
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 1
aload 10
aload 0
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.hasExceptionsRescued:()Z
iload 13
aload 6
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.boxRequiredVars:(Lorg/jruby/ir/instructions/Instr;Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;ZZLjava/util/List;)V
end local 13 end local 12 end local 11 end local 10 end local 8 91: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.BitSet java.util.List int top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
92: iload 7
ifne 98
93: aload 3
invokevirtual java.util.HashMap.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 97
StackMap locals:
StackMap stack:
94: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 8
start local 8 95: aload 5
aload 4
aload 8
invokevirtual org.jruby.ir.dataflow.analyses.LiveVariablesProblem.getDFVar:(Lorg/jruby/ir/operands/Variable;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
invokevirtual java.util.BitSet.get:(I)Z
ifeq 97
96: aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.tmpState:Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;
aload 3
aload 8
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
aload 1
aload 8
aload 6
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.unboxVar:(Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode$UnboxState;Ljava/lang/Class;Ljava/util/Map;Lorg/jruby/ir/operands/Variable;Ljava/util/List;)V
end local 8 97: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 94
98: StackMap locals: org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode java.util.Map org.jruby.ir.representations.CFG java.util.HashMap org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.BitSet java.util.List int
StackMap stack:
aload 0
getfield org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
aload 6
invokevirtual org.jruby.ir.representations.BasicBlock.replaceInstrs:(Ljava/util/List;)V
99: return
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 100 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
0 100 1 unboxMap Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;
1 100 2 cfg Lorg/jruby/ir/representations/CFG;
2 100 3 succUnboxedVars Ljava/util/HashMap<Lorg/jruby/ir/operands/Variable;Ljava/lang/Class;>;
4 10 4 b Lorg/jruby/ir/representations/BasicBlock;
6 10 6 xVars Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Ljava/lang/Class;>;
8 9 7 v2 Lorg/jruby/ir/operands/Variable;
13 14 4 v3 Lorg/jruby/ir/operands/Variable;
16 100 4 lvp Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
17 100 5 liveVarsSet Ljava/util/BitSet;
18 100 6 newInstrs Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
19 100 7 unboxedLiveVars Z
22 91 8 i Lorg/jruby/ir/instructions/Instr;
23 91 10 dst Lorg/jruby/ir/operands/Variable;
24 91 11 dstType Ljava/lang/Class;
25 91 12 unboxedAndDirty Z
26 91 13 hitDFBarrier Z
29 31 14 v Lorg/jruby/ir/operands/Variable;
38 48 14 src Lorg/jruby/ir/operands/Operand;
39 48 15 srcType Ljava/lang/Class;
44 47 16 unboxedSrc Lorg/jruby/ir/operands/Operand;
45 47 17 unboxedDst Lorg/jruby/ir/operands/TemporaryLocalVariable;
51 86 14 o Lorg/jruby/ir/operands/Operand;
53 75 15 c Lorg/jruby/ir/instructions/CallBase;
54 75 16 m Ljava/lang/String;
55 75 17 r Lorg/jruby/ir/operands/Operand;
57 75 18 a Lorg/jruby/ir/operands/Operand;
58 75 19 receiverType Ljava/lang/Class;
59 75 20 argType Ljava/lang/Class;
60 75 21 unboxedOp Lorg/jruby/ir/Operation;
61 75 22 unboxedType Ljava/lang/Class;
69 72 23 unboxedDst Lorg/jruby/ir/operands/TemporaryLocalVariable;
79 84 15 cl Lorg/jruby/ir/IRClosure;
80 84 16 subProblem Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;
81 84 17 exitNode Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
95 97 8 v Lorg/jruby/ir/operands/Variable;
Signature: (Ljava/util/Map<Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/TemporaryLocalVariable;>;)V
MethodParameters:
Name Flags
unboxMap
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc ""
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;
public void compute_MEET(org.jruby.dirgra.Edge, org.jruby.ir.dataflow.FlowGraphNode);
descriptor: (Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/FlowGraphNode;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode
invokevirtual org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.compute_MEET:(Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;)V
return
LocalVariableTable:
Start End Slot Name Signature
static int[] $SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.$SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.jruby.ir.operands.TemporaryVariableType.values:()[Lorg/jruby/ir/operands/TemporaryVariableType;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.BOOLEAN:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.CLOSURE:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_5
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.CURRENT_MODULE:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
bipush 6
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.CURRENT_SCOPE:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
bipush 7
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.FIXNUM:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_4
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.FLOAT:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_3
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic org.jruby.ir.operands.TemporaryVariableType.LOCAL:Lorg/jruby/ir/operands/TemporaryVariableType;
invokevirtual org.jruby.ir.operands.TemporaryVariableType.ordinal:()I
iconst_1
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
dup
putstatic org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode.$SWITCH_TABLE$org$jruby$ir$operands$TemporaryVariableType:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
}
Signature: Lorg/jruby/ir/dataflow/FlowGraphNode<Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisProblem;Lorg/jruby/ir/dataflow/analyses/UnboxableOpsAnalysisNode;>;
SourceFile: "UnboxableOpsAnalysisNode.java"
NestMembers:
org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState
InnerClasses:
private UnboxState = org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode$UnboxState of org.jruby.ir.dataflow.analyses.UnboxableOpsAnalysisNode