public class org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode extends org.jruby.ir.dataflow.FlowGraphNode<org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem, org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode
super_class: org.jruby.ir.dataflow.FlowGraphNode
{
java.util.Set<org.jruby.ir.operands.LocalVariable> inRequiredLoads;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
java.util.Set<org.jruby.ir.operands.LocalVariable> outRequiredLoads;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
java.util.Set<org.jruby.ir.operands.LocalVariable> reqdLoads;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
public void <init>(org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem, org.jruby.ir.representations.BasicBlock);
descriptor: (Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementProblem;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/LoadLocalVarPlacementNode;
0 2 1 prob Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementProblem;
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 java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.inRequiredLoads:Ljava/util/Set;
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.outRequiredLoads:Ljava/util/Set;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;
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/LoadLocalVarPlacementNode;
0 1 1 i Lorg/jruby/ir/instructions/Instr;
MethodParameters:
Name Flags
i
public void applyPreMeetHandler();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.isExitBB:()Z
ifeq 1
aload 0
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem.getLoadsOnScopeExit:()Ljava/util/Set;
putfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.inRequiredLoads:Ljava/util/Set;
1: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;
public void compute_MEET(org.jruby.dirgra.Edge, org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode);
descriptor: (Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.inRequiredLoads:Ljava/util/Set;
aload 2
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.outRequiredLoads:Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
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/LoadLocalVarPlacementNode;
0 2 1 e Lorg/jruby/dirgra/Edge;
0 2 2 pred Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;
MethodParameters:
Name Flags
e
pred
public void initSolution();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new java.util.HashSet
dup
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.inRequiredLoads:Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;
public void applyTransferFunction(org.jruby.ir.instructions.Instr);
descriptor: (Lorg/jruby/ir/instructions/Instr;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem.getScope:()Lorg/jruby/ir/IRScope;
astore 2
start local 2 1: aload 2
invokevirtual org.jruby.ir.IRScope.bindingHasEscaped:()Z
istore 3
start local 3 2: aload 1
instanceof org.jruby.ir.instructions.ResultInstr
ifeq 4
3: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
aload 1
checkcast org.jruby.ir.instructions.ResultInstr
invokeinterface org.jruby.ir.instructions.ResultInstr.getResult:()Lorg/jruby/ir/operands/Variable;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
4: StackMap locals: org.jruby.ir.IRScope int
StackMap stack:
aload 1
instanceof org.jruby.ir.instructions.ClosureAcceptingInstr
ifeq 24
5: aload 1
checkcast org.jruby.ir.instructions.ClosureAcceptingInstr
invokeinterface org.jruby.ir.instructions.ClosureAcceptingInstr.getClosureArg:()Lorg/jruby/ir/operands/Operand;
astore 4
start local 4 6: aload 4
ifnull 14
aload 4
instanceof org.jruby.ir.operands.WrappedIRClosure
ifeq 14
7: aload 4
checkcast org.jruby.ir.operands.WrappedIRClosure
invokevirtual org.jruby.ir.operands.WrappedIRClosure.getClosure:()Lorg/jruby/ir/IRClosure;
astore 5
start local 5 8: new java.util.HashSet
dup
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 6
start local 6 9: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 12
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int org.jruby.ir.operands.Operand org.jruby.ir.IRClosure java.util.Set top java.util.Iterator
StackMap stack:
10: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
astore 7
start local 7 11: aload 5
aload 7
invokevirtual org.jruby.ir.IRClosure.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
ifeq 12
aload 6
aload 7
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
end local 7 12: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
13: aload 0
aload 6
putfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
end local 6 end local 5 14: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int org.jruby.ir.operands.Operand
StackMap stack:
iload 3
ifeq 17
15: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
16: goto 26
17: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 5
start local 5 18: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 21
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int org.jruby.ir.operands.Operand java.util.Set top java.util.Iterator
StackMap stack:
19: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
astore 6
start local 6 20: aload 2
aload 6
invokevirtual org.jruby.ir.IRScope.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
ifne 21
aload 5
aload 6
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
end local 6 21: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
22: aload 0
aload 5
putfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
end local 5 end local 4 23: goto 26
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int
StackMap stack:
24: iload 3
ifeq 26
aload 1
invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
getstatic org.jruby.ir.Operation.PUT_GLOBAL_VAR:Lorg/jruby/ir/Operation;
if_acmpne 26
25: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
26: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
getstatic org.jruby.ir.Operation.BINDING_STORE:Lorg/jruby/ir/Operation;
if_acmpne 30
27: aload 1
checkcast org.jruby.ir.instructions.StoreLocalVarInstr
invokevirtual org.jruby.ir.instructions.StoreLocalVarInstr.getLocalVar:()Lorg/jruby/ir/operands/LocalVariable;
astore 4
start local 4 28: aload 4
invokevirtual org.jruby.ir.operands.LocalVariable.isSelf:()Z
ifne 35
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 29: goto 35
30: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.ir.instructions.Instr.getUsedVariables:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 34
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int top java.util.Iterator
StackMap stack:
31: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 4
start local 4 32: aload 4
instanceof org.jruby.ir.operands.LocalVariable
ifeq 34
aload 4
invokevirtual org.jruby.ir.operands.Variable.isSelf:()Z
ifne 34
33: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
aload 4
checkcast org.jruby.ir.operands.LocalVariable
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 34: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 31
35: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;
0 36 1 i Lorg/jruby/ir/instructions/Instr;
1 36 2 scope Lorg/jruby/ir/IRScope;
2 36 3 scopeBindingHasEscaped Z
6 23 4 o Lorg/jruby/ir/operands/Operand;
8 14 5 cl Lorg/jruby/ir/IRClosure;
9 14 6 newReqdLoads Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
11 12 7 v Lorg/jruby/ir/operands/LocalVariable;
18 23 5 newReqdLoads Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
20 21 6 v Lorg/jruby/ir/operands/LocalVariable;
28 29 4 lv Lorg/jruby/ir/operands/LocalVariable;
32 34 4 x 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.LoadLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.isEntryBB:()Z
ifne 1
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.isRescueEntry:()Z
ifeq 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.outRequiredLoads:Ljava/util/Set;
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifeq 3
iconst_0
goto 4
StackMap locals:
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;
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.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
putfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.outRequiredLoads:Ljava/util/Set;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;
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/LoadLocalVarPlacementNode;
private org.jruby.ir.operands.TemporaryLocalVariable getLocalVarReplacement(org.jruby.ir.operands.LocalVariable, org.jruby.ir.IRScope, java.util.Map<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>);
descriptor: (Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.ir.operands.TemporaryLocalVariable
astore 4
start local 4 1: aload 4
ifnonnull 4
2: aload 2
aload 1
invokevirtual org.jruby.ir.IRScope.getNewTemporaryVariableFor:(Lorg/jruby/ir/operands/LocalVariable;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
astore 4
3: aload 3
aload 1
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: StackMap locals: org.jruby.ir.operands.TemporaryLocalVariable
StackMap stack:
aload 4
areturn
end local 4 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/dataflow/analyses/LoadLocalVarPlacementNode;
0 5 1 v Lorg/jruby/ir/operands/LocalVariable;
0 5 2 scope Lorg/jruby/ir/IRScope;
0 5 3 varRenameMap Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
1 5 4 value Lorg/jruby/ir/operands/TemporaryLocalVariable;
Signature: (Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
MethodParameters:
Name Flags
v
scope
varRenameMap
public void addLoads(java.util.Map<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
checkcast org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem.getScope:()Lorg/jruby/ir/IRScope;
astore 2
start local 2 1: aload 2
instanceof org.jruby.ir.IREvalScript
istore 3
start local 3 2: aload 2
invokevirtual org.jruby.ir.IRScope.bindingHasEscaped:()Z
istore 4
start local 4 3: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
astore 5
start local 5 4: aload 5
aload 5
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
astore 6
start local 6 5: aload 0
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.initSolution:()V
6: goto 68
7: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
checkcast org.jruby.ir.instructions.Instr
astore 7
start local 7 8: aload 7
instanceof org.jruby.ir.instructions.ResultInstr
ifeq 9
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
aload 7
checkcast org.jruby.ir.instructions.ResultInstr
invokeinterface org.jruby.ir.instructions.ResultInstr.getResult:()Lorg/jruby/ir/operands/Variable;
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
9: StackMap locals: org.jruby.ir.instructions.Instr
StackMap stack:
aload 7
instanceof org.jruby.ir.instructions.ClosureAcceptingInstr
ifeq 44
10: aload 7
checkcast org.jruby.ir.instructions.ClosureAcceptingInstr
invokeinterface org.jruby.ir.instructions.ClosureAcceptingInstr.getClosureArg:()Lorg/jruby/ir/operands/Operand;
astore 8
start local 8 11: aload 8
ifnull 23
aload 8
instanceof org.jruby.ir.operands.WrappedIRClosure
ifeq 23
12: aload 8
checkcast org.jruby.ir.operands.WrappedIRClosure
invokevirtual org.jruby.ir.operands.WrappedIRClosure.getClosure:()Lorg/jruby/ir/IRClosure;
astore 9
start local 9 13: aload 6
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
pop
14: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
start local 10 15: goto 21
16: StackMap locals: org.jruby.ir.operands.Operand org.jruby.ir.IRClosure java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
astore 11
start local 11 17: aload 9
aload 11
invokevirtual org.jruby.ir.IRClosure.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
ifeq 21
18: aload 6
new org.jruby.ir.instructions.LoadLocalVarInstr
dup
aload 2
aload 0
aload 11
aload 2
aload 1
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
aload 11
invokespecial org.jruby.ir.instructions.LoadLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/TemporaryLocalVariable;Lorg/jruby/ir/operands/LocalVariable;)V
invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
19: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
20: aload 10
invokeinterface java.util.Iterator.remove:()V
end local 11 21: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
end local 10 22: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
end local 9 23: StackMap locals:
StackMap stack:
iload 4
ifeq 33
24: aload 6
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
pop
25: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 29
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand top java.util.Iterator
StackMap stack:
26: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
astore 9
start local 9 27: aload 6
new org.jruby.ir.instructions.LoadLocalVarInstr
dup
aload 2
aload 0
aload 9
aload 2
aload 1
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
aload 9
invokespecial org.jruby.ir.instructions.LoadLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/TemporaryLocalVariable;Lorg/jruby/ir/operands/LocalVariable;)V
invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
28: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
end local 9 29: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
30: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
31: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
32: goto 54
33: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
pop
34: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
start local 9 35: goto 41
36: StackMap locals: java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
astore 10
start local 10 37: aload 2
aload 10
invokevirtual org.jruby.ir.IRScope.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
ifne 41
38: aload 6
new org.jruby.ir.instructions.LoadLocalVarInstr
dup
aload 2
aload 0
aload 10
aload 2
aload 1
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
aload 10
invokespecial org.jruby.ir.instructions.LoadLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/TemporaryLocalVariable;Lorg/jruby/ir/operands/LocalVariable;)V
invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
39: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
40: aload 9
invokeinterface java.util.Iterator.remove:()V
end local 10 41: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 36
end local 9 42: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
end local 8 43: goto 54
44: StackMap locals:
StackMap stack:
iload 4
ifeq 45
aload 7
invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
getstatic org.jruby.ir.Operation.PUT_GLOBAL_VAR:Lorg/jruby/ir/Operation;
if_acmpeq 46
45: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
getstatic org.jruby.ir.Operation.THREAD_POLL:Lorg/jruby/ir/Operation;
if_acmpne 54
46: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
pop
47: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 51
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator org.jruby.ir.instructions.Instr top java.util.Iterator
StackMap stack:
48: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
astore 8
start local 8 49: aload 6
new org.jruby.ir.instructions.LoadLocalVarInstr
dup
aload 2
aload 0
aload 8
aload 2
aload 1
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
aload 8
invokespecial org.jruby.ir.instructions.LoadLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/TemporaryLocalVariable;Lorg/jruby/ir/operands/LocalVariable;)V
invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
50: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
end local 8 51: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 48
52: aload 6
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
pop
53: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
54: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator org.jruby.ir.instructions.Instr
StackMap stack:
aload 7
invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
getstatic org.jruby.ir.Operation.BINDING_STORE:Lorg/jruby/ir/Operation;
if_acmpne 60
55: aload 7
checkcast org.jruby.ir.instructions.StoreLocalVarInstr
invokevirtual org.jruby.ir.instructions.StoreLocalVarInstr.getLocalVar:()Lorg/jruby/ir/operands/LocalVariable;
astore 8
start local 8 56: aload 8
invokevirtual org.jruby.ir.operands.LocalVariable.isSelf:()Z
ifne 68
57: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
aload 8
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
58: aload 0
aload 8
aload 2
aload 1
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
pop
end local 8 59: goto 68
60: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.jruby.ir.instructions.Instr.getUsedVariables:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 67
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator org.jruby.ir.instructions.Instr top java.util.Iterator
StackMap stack:
61: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.Variable
astore 8
start local 8 62: aload 8
instanceof org.jruby.ir.operands.LocalVariable
ifne 63
goto 67
63: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Variable java.util.Iterator
StackMap stack:
aload 8
checkcast org.jruby.ir.operands.LocalVariable
astore 10
start local 10 64: aload 10
invokevirtual org.jruby.ir.operands.LocalVariable.isSelf:()Z
ifne 67
65: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
aload 10
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
66: aload 0
aload 10
aload 2
aload 1
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
pop
end local 10 end local 8 67: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator org.jruby.ir.instructions.Instr top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 61
end local 7 68: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator
StackMap stack:
aload 6
invokeinterface java.util.ListIterator.hasPrevious:()Z
ifne 7
69: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.isRescueEntry:()Z
ifeq 74
70: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 73
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator top java.util.Iterator
StackMap stack:
71: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
astore 7
start local 7 72: aload 6
new org.jruby.ir.instructions.LoadLocalVarInstr
dup
aload 2
aload 0
aload 7
aload 2
aload 1
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
aload 7
invokespecial org.jruby.ir.instructions.LoadLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/TemporaryLocalVariable;Lorg/jruby/ir/operands/LocalVariable;)V
invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
end local 7 73: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 71
74: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator
StackMap stack:
aload 2
instanceof org.jruby.ir.IRClosure
ifeq 81
aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
invokevirtual org.jruby.ir.representations.BasicBlock.isEntryBB:()Z
ifeq 81
75: aload 0
getfield org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.reqdLoads:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 80
StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator top java.util.Iterator
StackMap stack:
76: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.jruby.ir.operands.LocalVariable
astore 7
start local 7 77: aload 2
aload 7
invokevirtual org.jruby.ir.IRScope.usesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
ifne 78
aload 2
aload 7
invokevirtual org.jruby.ir.IRScope.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
ifeq 80
78: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator org.jruby.ir.operands.LocalVariable java.util.Iterator
StackMap stack:
iload 3
ifne 79
aload 7
instanceof org.jruby.ir.operands.ClosureLocalVariable
ifeq 79
aload 7
checkcast org.jruby.ir.operands.ClosureLocalVariable
invokevirtual org.jruby.ir.operands.ClosureLocalVariable.isOuterScopeVar:()Z
ifeq 80
79: StackMap locals:
StackMap stack:
aload 6
new org.jruby.ir.instructions.LoadLocalVarInstr
dup
aload 2
aload 0
aload 7
aload 2
aload 1
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Lorg/jruby/ir/IRScope;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
aload 7
invokespecial org.jruby.ir.instructions.LoadLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/TemporaryLocalVariable;Lorg/jruby/ir/operands/LocalVariable;)V
invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
end local 7 80: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 76
81: StackMap locals: org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode java.util.Map org.jruby.ir.IRScope int int java.util.List java.util.ListIterator
StackMap stack:
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 82 0 this Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;
0 82 1 varRenameMap Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
1 82 2 scope Lorg/jruby/ir/IRScope;
2 82 3 isEvalScript Z
3 82 4 scopeBindingHasEscaped Z
4 82 5 instrs Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
5 82 6 it Ljava/util/ListIterator<Lorg/jruby/ir/instructions/Instr;>;
8 68 7 i Lorg/jruby/ir/instructions/Instr;
11 43 8 o Lorg/jruby/ir/operands/Operand;
13 23 9 cl Lorg/jruby/ir/IRClosure;
15 22 10 iter Ljava/util/Iterator<Lorg/jruby/ir/operands/LocalVariable;>;
17 21 11 v Lorg/jruby/ir/operands/LocalVariable;
27 29 9 v Lorg/jruby/ir/operands/LocalVariable;
35 42 9 iter Ljava/util/Iterator<Lorg/jruby/ir/operands/LocalVariable;>;
37 41 10 v Lorg/jruby/ir/operands/LocalVariable;
49 51 8 v Lorg/jruby/ir/operands/LocalVariable;
56 59 8 lv Lorg/jruby/ir/operands/LocalVariable;
62 67 8 v Lorg/jruby/ir/operands/Variable;
64 67 10 lv Lorg/jruby/ir/operands/LocalVariable;
72 73 7 v Lorg/jruby/ir/operands/LocalVariable;
77 80 7 v Lorg/jruby/ir/operands/LocalVariable;
Signature: (Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;)V
MethodParameters:
Name Flags
varRenameMap
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.LoadLocalVarPlacementNode
invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementNode.compute_MEET:(Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lorg/jruby/ir/dataflow/FlowGraphNode<Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementProblem;Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementNode;>;
SourceFile: "LoadLocalVarPlacementNode.java"