public class org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode extends org.jruby.ir.dataflow.FlowGraphNode<org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem, org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode
  super_class: org.jruby.ir.dataflow.FlowGraphNode
{
  java.util.Set<org.jruby.ir.operands.LocalVariable> inDirtyVars;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;

  java.util.Set<org.jruby.ir.operands.LocalVariable> outDirtyVars;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;

  java.util.Set<org.jruby.ir.operands.LocalVariable> dirtyVars;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;

  public void <init>(org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem, org.jruby.ir.representations.BasicBlock);
    descriptor: (Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;Lorg/jruby/ir/representations/BasicBlock;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
        start local 1 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem prob
        start local 2 // org.jruby.ir.representations.BasicBlock n
         0: .line 19
            aload 0 /* this */
            aload 1 /* prob */
            aload 2 /* n */
            invokespecial org.jruby.ir.dataflow.FlowGraphNode.<init>:(Lorg/jruby/ir/dataflow/DataFlowProblem;Lorg/jruby/ir/representations/BasicBlock;)V
         1: .line 20
            return
        end local 2 // org.jruby.ir.representations.BasicBlock n
        end local 1 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem prob
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;
            0    2     1  prob  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;
            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 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
         0: .line 24
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.outDirtyVars:Ljava/util/Set;
         1: .line 27
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.getBB:()Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.isRescueEntry:()Z
            ifeq 2
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.inDirtyVars:Ljava/util/Set;
         2: .line 28
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;

  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 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
        start local 1 // org.jruby.ir.instructions.Instr i
         0: .line 34
            return
        end local 1 // org.jruby.ir.instructions.Instr i
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;
            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=4, args_size=1
        start local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
         0: .line 38
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.getBB:()Lorg/jruby/ir/representations/BasicBlock;
            astore 1 /* bb */
        start local 1 // org.jruby.ir.representations.BasicBlock bb
         1: .line 41
            aload 1 /* bb */
            invokevirtual org.jruby.ir.representations.BasicBlock.isRescueEntry:()Z
            ifne 10
         2: .line 42
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.inDirtyVars:Ljava/util/Set;
         3: .line 51
            aload 1 /* bb */
            invokevirtual org.jruby.ir.representations.BasicBlock.isExitBB:()Z
            ifeq 10
         4: .line 52
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getLiveVariablesProblem:()Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
            astore 2 /* lvp */
        start local 2 // org.jruby.ir.dataflow.analyses.LiveVariablesProblem lvp
         5: .line 53
            aload 2 /* lvp */
            invokevirtual org.jruby.ir.dataflow.analyses.LiveVariablesProblem.getLocalVarsLiveOnScopeEntry:()Ljava/util/Collection;
            astore 3 /* liveVars */
        start local 3 // java.util.Collection liveVars
         6: .line 54
            aload 3 /* liveVars */
            ifnull 9
         7: .line 55
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.inDirtyVars:Ljava/util/Set;
            aload 3 /* liveVars */
            invokeinterface java.util.Set.retainAll:(Ljava/util/Collection;)Z
            pop
         8: .line 56
            goto 10
         9: .line 57
      StackMap locals: org.jruby.ir.representations.BasicBlock org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.inDirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        end local 3 // java.util.Collection liveVars
        end local 2 // org.jruby.ir.dataflow.analyses.LiveVariablesProblem lvp
        10: .line 61
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.jruby.ir.representations.BasicBlock bb
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;
            1   11     1        bb  Lorg/jruby/ir/representations/BasicBlock;
            5   10     2       lvp  Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
            6   10     3  liveVars  Ljava/util/Collection<Lorg/jruby/ir/operands/LocalVariable;>;

  public void compute_MEET(org.jruby.dirgra.Edge, org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode);
    descriptor: (Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
        start local 1 // org.jruby.dirgra.Edge e
        start local 2 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode pred
         0: .line 66
            aload 2 /* pred */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.isRescueEntry:()Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.inDirtyVars:Ljava/util/Set;
            aload 2 /* pred */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.outDirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         1: .line 67
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode pred
        end local 1 // org.jruby.dirgra.Edge e
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;
            0    2     1     e  Lorg/jruby/dirgra/Edge;
            0    2     2  pred  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;
    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 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
         0: .line 71
            aload 0 /* this */
            new java.util.HashSet
            dup
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.inDirtyVars:Ljava/util/Set;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
         1: .line 72
            return
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;

  public void applyTransferFunction(org.jruby.ir.instructions.Instr);
    descriptor: (Lorg/jruby/ir/instructions/Instr;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
        start local 1 // org.jruby.ir.instructions.Instr i
         0: .line 76
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getScope:()Lorg/jruby/ir/IRScope;
            astore 2 /* scope */
        start local 2 // org.jruby.ir.IRScope scope
         1: .line 77
            aload 2 /* scope */
            invokevirtual org.jruby.ir.IRScope.bindingHasEscaped:()Z
            istore 3 /* scopeBindingHasEscaped */
        start local 3 // boolean scopeBindingHasEscaped
         2: .line 80
            aload 1 /* i */
            instanceof org.jruby.ir.instructions.ClosureAcceptingInstr
            ifeq 26
         3: .line 81
            aload 1 /* i */
            checkcast org.jruby.ir.instructions.ClosureAcceptingInstr
            invokeinterface org.jruby.ir.instructions.ClosureAcceptingInstr.getClosureArg:()Lorg/jruby/ir/operands/Operand;
            astore 4 /* o */
        start local 4 // org.jruby.ir.operands.Operand o
         4: .line 83
            aload 4 /* o */
            ifnull 15
            aload 4 /* o */
            instanceof org.jruby.ir.operands.WrappedIRClosure
            ifeq 15
         5: .line 88
            aload 4 /* o */
            checkcast org.jruby.ir.operands.WrappedIRClosure
            invokevirtual org.jruby.ir.operands.WrappedIRClosure.getClosure:()Lorg/jruby/ir/IRClosure;
            astore 5 /* cl */
        start local 5 // org.jruby.ir.IRClosure cl
         6: .line 91
            iload 3 /* scopeBindingHasEscaped */
            istore 6 /* spillAllVars */
        start local 6 // boolean spillAllVars
         7: .line 99
            new java.util.HashSet
            dup
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 7 /* newDirtyVars */
        start local 7 // java.util.Set newDirtyVars
         8: .line 100
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 12
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int org.jruby.ir.operands.Operand org.jruby.ir.IRClosure int java.util.Set top java.util.Iterator
      StackMap stack:
         9: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.LocalVariable
            astore 8 /* v */
        start local 8 // org.jruby.ir.operands.LocalVariable v
        10: .line 101
            iload 6 /* spillAllVars */
            ifne 11
            aload 5 /* cl */
            aload 8 /* v */
            invokevirtual org.jruby.ir.IRClosure.usesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
            ifne 11
            aload 5 /* cl */
            aload 8 /* v */
            invokevirtual org.jruby.ir.IRClosure.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
            ifeq 12
        11: .line 102
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int org.jruby.ir.operands.Operand org.jruby.ir.IRClosure int java.util.Set org.jruby.ir.operands.LocalVariable java.util.Iterator
      StackMap stack:
            aload 7 /* newDirtyVars */
            aload 8 /* v */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.jruby.ir.operands.LocalVariable v
        12: .line 100
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int org.jruby.ir.operands.Operand org.jruby.ir.IRClosure int java.util.Set top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 105
            aload 0 /* this */
            aload 7 /* newDirtyVars */
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
        end local 7 // java.util.Set newDirtyVars
        end local 6 // boolean spillAllVars
        end local 5 // org.jruby.ir.IRClosure cl
        14: .line 106
            goto 34
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int org.jruby.ir.operands.Operand
      StackMap stack:
        15: iload 3 /* scopeBindingHasEscaped */
            ifeq 18
        16: .line 107
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        17: .line 108
            goto 34
        18: .line 113
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 5 /* newDirtyVars */
        start local 5 // java.util.Set newDirtyVars
        19: .line 114
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 23
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int org.jruby.ir.operands.Operand java.util.Set top java.util.Iterator
      StackMap stack:
        20: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.LocalVariable
            astore 6 /* v */
        start local 6 // org.jruby.ir.operands.LocalVariable v
        21: .line 115
            aload 6 /* v */
            instanceof org.jruby.ir.operands.ClosureLocalVariable
            ifeq 23
            aload 6 /* v */
            checkcast org.jruby.ir.operands.ClosureLocalVariable
            invokevirtual org.jruby.ir.operands.ClosureLocalVariable.isOuterScopeVar:()Z
            ifeq 23
        22: .line 116
            aload 5 /* newDirtyVars */
            aload 6 /* v */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.jruby.ir.operands.LocalVariable v
        23: .line 114
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        24: .line 119
            aload 0 /* this */
            aload 5 /* newDirtyVars */
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
        end local 5 // java.util.Set newDirtyVars
        end local 4 // org.jruby.ir.operands.Operand o
        25: .line 121
            goto 34
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode org.jruby.ir.instructions.Instr org.jruby.ir.IRScope int
      StackMap stack:
        26: aload 1 /* i */
            instanceof org.jruby.ir.instructions.ReturnBase
            ifne 27
            aload 1 /* i */
            instanceof org.jruby.ir.instructions.BreakInstr
            ifeq 34
        27: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.getBB:()Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.isExitBB:()Z
            ifne 34
        28: .line 134
            aload 2 /* scope */
            invokevirtual org.jruby.ir.IRScope.getLiveVariablesProblem:()Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
            astore 4 /* lvp */
        start local 4 // org.jruby.ir.dataflow.analyses.LiveVariablesProblem lvp
        29: .line 135
            aload 4 /* lvp */
            invokevirtual org.jruby.ir.dataflow.analyses.LiveVariablesProblem.getLocalVarsLiveOnScopeEntry:()Ljava/util/Collection;
            astore 5 /* liveVars */
        start local 5 // java.util.Collection liveVars
        30: .line 136
            aload 5 /* liveVars */
            ifnull 33
        31: .line 137
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            aload 5 /* liveVars */
            invokeinterface java.util.Set.retainAll:(Ljava/util/Collection;)Z
            pop
        32: .line 138
            goto 34
        33: .line 139
      StackMap locals: org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        end local 5 // java.util.Collection liveVars
        end local 4 // org.jruby.ir.dataflow.analyses.LiveVariablesProblem lvp
        34: .line 144
      StackMap locals:
      StackMap stack:
            iload 3 /* scopeBindingHasEscaped */
            ifeq 36
            aload 1 /* i */
            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 36
        35: .line 147
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        36: .line 152
      StackMap locals:
      StackMap stack:
            aload 1 /* i */
            invokevirtual org.jruby.ir.instructions.Instr.canRaiseException:()Z
            ifeq 38
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.hasExceptionsRescued:()Z
            ifeq 38
        37: .line 153
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        38: .line 156
      StackMap locals:
      StackMap stack:
            aload 1 /* i */
            instanceof org.jruby.ir.instructions.ResultInstr
            ifeq 41
        39: .line 157
            aload 1 /* i */
            checkcast org.jruby.ir.instructions.ResultInstr
            invokeinterface org.jruby.ir.instructions.ResultInstr.getResult:()Lorg/jruby/ir/operands/Variable;
            astore 4 /* v */
        start local 4 // org.jruby.ir.operands.Variable v
        40: .line 160
            aload 4 /* v */
            instanceof org.jruby.ir.operands.LocalVariable
            ifeq 41
            aload 4 /* v */
            invokevirtual org.jruby.ir.operands.Variable.isSelf:()Z
            ifne 41
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            aload 4 /* v */
            checkcast org.jruby.ir.operands.LocalVariable
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.jruby.ir.operands.Variable v
        41: .line 162
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean scopeBindingHasEscaped
        end local 2 // org.jruby.ir.IRScope scope
        end local 1 // org.jruby.ir.instructions.Instr i
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   42     0                    this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;
            0   42     1                       i  Lorg/jruby/ir/instructions/Instr;
            1   42     2                   scope  Lorg/jruby/ir/IRScope;
            2   42     3  scopeBindingHasEscaped  Z
            4   25     4                       o  Lorg/jruby/ir/operands/Operand;
            6   14     5                      cl  Lorg/jruby/ir/IRClosure;
            7   14     6            spillAllVars  Z
            8   14     7            newDirtyVars  Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
           10   12     8                       v  Lorg/jruby/ir/operands/LocalVariable;
           19   25     5            newDirtyVars  Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
           21   23     6                       v  Lorg/jruby/ir/operands/LocalVariable;
           29   34     4                     lvp  Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
           30   34     5                liveVars  Ljava/util/Collection<Lorg/jruby/ir/operands/LocalVariable;>;
           40   41     4                       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 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
         0: .line 166
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.outDirtyVars:Ljava/util/Set;
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;

  public void finalizeSolution();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
         0: .line 171
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.outDirtyVars:Ljava/util/Set;
         1: .line 172
            return
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
         0: .line 176
            ldc ""
            areturn
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;

  public boolean addStores(java.util.Map<org.jruby.ir.operands.Operand, org.jruby.ir.operands.Operand>, java.util.Set<org.jruby.ir.operands.LocalVariable>);
    descriptor: (Ljava/util/Map;Ljava/util/Set;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=14, args_size=3
        start local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
        start local 1 // java.util.Map varRenameMap
        start local 2 // java.util.Set excTargetDirtyVars
         0: .line 180
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getScope:()Lorg/jruby/ir/IRScope;
            astore 3 /* scope */
        start local 3 // org.jruby.ir.IRScope scope
         1: .line 182
            iconst_0
            istore 4 /* addedStores */
        start local 4 // boolean addedStores
         2: .line 183
            aload 3 /* scope */
            instanceof org.jruby.ir.IRClosure
            pop
         3: .line 184
            aload 3 /* scope */
            invokevirtual org.jruby.ir.IRScope.bindingHasEscaped:()Z
            istore 5 /* scopeBindingHasEscaped */
        start local 5 // boolean scopeBindingHasEscaped
         4: .line 186
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.listIterator:()Ljava/util/ListIterator;
            astore 6 /* instrs */
        start local 6 // java.util.ListIterator instrs
         5: .line 188
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.initSolution:()V
         6: .line 190
            goto 92
         7: .line 191
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator
      StackMap stack:
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 7 /* i */
        start local 7 // org.jruby.ir.instructions.Instr i
         8: .line 194
            aload 7 /* i */
            instanceof org.jruby.ir.instructions.ClosureAcceptingInstr
            ifeq 48
         9: .line 195
            aload 7 /* i */
            checkcast org.jruby.ir.instructions.ClosureAcceptingInstr
            invokeinterface org.jruby.ir.instructions.ClosureAcceptingInstr.getClosureArg:()Lorg/jruby/ir/operands/Operand;
            astore 8 /* o */
        start local 8 // org.jruby.ir.operands.Operand o
        10: .line 196
            aload 8 /* o */
            ifnull 25
            aload 8 /* o */
            instanceof org.jruby.ir.operands.WrappedIRClosure
            ifeq 25
        11: .line 197
            aload 8 /* o */
            checkcast org.jruby.ir.operands.WrappedIRClosure
            invokevirtual org.jruby.ir.operands.WrappedIRClosure.getClosure:()Lorg/jruby/ir/IRClosure;
            astore 9 /* cl */
        start local 9 // org.jruby.ir.IRClosure cl
        12: .line 200
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        13: .line 203
            iload 5 /* scopeBindingHasEscaped */
            istore 10 /* spillAllVars */
        start local 10 // boolean spillAllVars
        14: .line 207
            new java.util.HashSet
            dup
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 11 /* newDirtyVars */
        start local 11 // java.util.Set newDirtyVars
        15: .line 208
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 13
            goto 21
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand org.jruby.ir.IRClosure int java.util.Set top java.util.Iterator
      StackMap stack:
        16: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.LocalVariable
            astore 12 /* v */
        start local 12 // org.jruby.ir.operands.LocalVariable v
        17: .line 212
            iload 10 /* spillAllVars */
            ifne 18
            aload 9 /* cl */
            aload 12 /* v */
            invokevirtual org.jruby.ir.IRClosure.usesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
            ifne 18
            aload 9 /* cl */
            aload 12 /* v */
            invokevirtual org.jruby.ir.IRClosure.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
            ifeq 21
        18: .line 213
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand org.jruby.ir.IRClosure int java.util.Set org.jruby.ir.operands.LocalVariable java.util.Iterator
      StackMap stack:
            iconst_1
            istore 4 /* addedStores */
        19: .line 214
            aload 6 /* instrs */
            new org.jruby.ir.instructions.StoreLocalVarInstr
            dup
            aload 3 /* scope */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            aload 12 /* v */
            aload 1 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
            aload 12 /* v */
            invokespecial org.jruby.ir.instructions.StoreLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/LocalVariable;)V
            invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
        20: .line 215
            aload 11 /* newDirtyVars */
            aload 12 /* v */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 12 // org.jruby.ir.operands.LocalVariable v
        21: .line 208
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand org.jruby.ir.IRClosure int java.util.Set top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        22: .line 218
            aload 0 /* this */
            aload 11 /* newDirtyVars */
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
        23: .line 219
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            pop
        end local 11 // java.util.Set newDirtyVars
        end local 10 // boolean spillAllVars
        end local 9 // org.jruby.ir.IRClosure cl
        24: .line 220
            goto 63
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand
      StackMap stack:
        25: iload 5 /* scopeBindingHasEscaped */
            ifeq 35
        26: .line 222
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        27: .line 223
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 31
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand top java.util.Iterator
      StackMap stack:
        28: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.LocalVariable
            astore 9 /* v */
        start local 9 // org.jruby.ir.operands.LocalVariable v
        29: .line 224
            iconst_1
            istore 4 /* addedStores */
        30: .line 225
            aload 6 /* instrs */
            new org.jruby.ir.instructions.StoreLocalVarInstr
            dup
            aload 3 /* scope */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            aload 9 /* v */
            aload 1 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
            aload 9 /* v */
            invokespecial org.jruby.ir.instructions.StoreLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/LocalVariable;)V
            invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
        end local 9 // org.jruby.ir.operands.LocalVariable v
        31: .line 223
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        32: .line 227
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            pop
        33: .line 228
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        34: .line 229
            goto 63
        35: .line 230
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand
      StackMap stack:
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        36: .line 236
            new java.util.HashSet
            dup
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 9 /* newDirtyVars */
        start local 9 // java.util.Set newDirtyVars
        37: .line 237
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 44
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand java.util.Set top java.util.Iterator
      StackMap stack:
        38: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.LocalVariable
            astore 10 /* v */
        start local 10 // org.jruby.ir.operands.LocalVariable v
        39: .line 242
            aload 10 /* v */
            instanceof org.jruby.ir.operands.ClosureLocalVariable
            ifeq 40
            aload 10 /* v */
            checkcast org.jruby.ir.operands.ClosureLocalVariable
            invokevirtual org.jruby.ir.operands.ClosureLocalVariable.isOuterScopeVar:()Z
            ifne 41
        40: .line 243
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand java.util.Set org.jruby.ir.operands.LocalVariable java.util.Iterator
      StackMap stack:
            aload 10 /* v */
            instanceof org.jruby.ir.operands.ClosureLocalVariable
            ifne 44
            aload 3 /* scope */
            invokevirtual org.jruby.ir.IRScope.getScopeType:()Lorg/jruby/ir/IRScopeType;
            invokevirtual org.jruby.ir.IRScopeType.isClosureType:()Z
            ifeq 44
        41: .line 245
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* addedStores */
        42: .line 246
            aload 6 /* instrs */
            new org.jruby.ir.instructions.StoreLocalVarInstr
            dup
            aload 3 /* scope */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            aload 10 /* v */
            aload 1 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
            aload 10 /* v */
            invokespecial org.jruby.ir.instructions.StoreLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/LocalVariable;)V
            invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
        43: .line 247
            aload 9 /* newDirtyVars */
            aload 10 /* v */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        end local 10 // org.jruby.ir.operands.LocalVariable v
        44: .line 237
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr org.jruby.ir.operands.Operand java.util.Set top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        45: .line 250
            aload 0 /* this */
            aload 9 /* newDirtyVars */
            putfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
        46: .line 251
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            pop
        end local 9 // java.util.Set newDirtyVars
        end local 8 // org.jruby.ir.operands.Operand o
        47: .line 253
            goto 63
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr
      StackMap stack:
        48: aload 7 /* i */
            instanceof org.jruby.ir.instructions.ReturnBase
            ifne 49
            aload 7 /* i */
            instanceof org.jruby.ir.instructions.BreakInstr
            ifeq 63
        49: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.isExitBB:()Z
            ifne 56
        50: .line 266
            aload 3 /* scope */
            invokevirtual org.jruby.ir.IRScope.getLiveVariablesProblem:()Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
            astore 8 /* lvp */
        start local 8 // org.jruby.ir.dataflow.analyses.LiveVariablesProblem lvp
        51: .line 267
            aload 8 /* lvp */
            invokevirtual org.jruby.ir.dataflow.analyses.LiveVariablesProblem.getLocalVarsLiveOnScopeEntry:()Ljava/util/Collection;
            astore 9 /* liveVars */
        start local 9 // java.util.Collection liveVars
        52: .line 268
            aload 9 /* liveVars */
            ifnull 55
        53: .line 269
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            aload 9 /* liveVars */
            invokeinterface java.util.Set.retainAll:(Ljava/util/Collection;)Z
            pop
        54: .line 270
            goto 56
        55: .line 271
      StackMap locals: org.jruby.ir.dataflow.analyses.LiveVariablesProblem java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        end local 9 // java.util.Collection liveVars
        end local 8 // org.jruby.ir.dataflow.analyses.LiveVariablesProblem lvp
        56: .line 276
      StackMap locals:
      StackMap stack:
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        57: .line 277
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            aload 6 /* instrs */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            aload 1 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.addScopeExitStoreLocalVars:(Ljava/util/ListIterator;Ljava/util/Set;Ljava/util/Map;)Z
            istore 8 /* f */
        start local 8 // boolean f
        58: .line 278
            iload 4 /* addedStores */
            ifne 59
            iload 8 /* f */
            ifne 59
            iconst_0
            goto 60
      StackMap locals: int
      StackMap stack:
        59: iconst_1
      StackMap locals:
      StackMap stack: int
        60: istore 4 /* addedStores */
        61: .line 279
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            pop
        62: .line 282
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        end local 8 // boolean f
        63: .line 285
      StackMap locals:
      StackMap stack:
            iload 5 /* scopeBindingHasEscaped */
            ifeq 64
            aload 7 /* i */
            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 65
        64: .line 286
      StackMap locals:
      StackMap stack:
            aload 7 /* i */
            invokevirtual org.jruby.ir.instructions.Instr.getOperation:()Lorg/jruby/ir/Operation;
            getstatic org.jruby.ir.Operation.THREAD_POLL:Lorg/jruby/ir/Operation;
            if_acmpne 73
        65: .line 290
      StackMap locals:
      StackMap stack:
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        66: .line 291
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 70
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr top java.util.Iterator
      StackMap stack:
        67: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.LocalVariable
            astore 8 /* v */
        start local 8 // org.jruby.ir.operands.LocalVariable v
        68: .line 292
            iconst_1
            istore 4 /* addedStores */
        69: .line 293
            aload 6 /* instrs */
            new org.jruby.ir.instructions.StoreLocalVarInstr
            dup
            aload 3 /* scope */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            aload 8 /* v */
            aload 1 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
            aload 8 /* v */
            invokespecial org.jruby.ir.instructions.StoreLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/LocalVariable;)V
            invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
        end local 8 // org.jruby.ir.operands.LocalVariable v
        70: .line 291
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 67
        71: .line 295
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            pop
        72: .line 296
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        73: .line 299
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr
      StackMap stack:
            aload 7 /* i */
            invokevirtual org.jruby.ir.instructions.Instr.canRaiseException:()Z
            ifeq 86
        74: .line 300
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.hasExceptionsRescued:()Z
            ifeq 84
        75: .line 303
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        76: .line 304
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 80
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr top java.util.Iterator
      StackMap stack:
        77: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.LocalVariable
            astore 8 /* v */
        start local 8 // org.jruby.ir.operands.LocalVariable v
        78: .line 305
            iconst_1
            istore 4 /* addedStores */
        79: .line 306
            aload 6 /* instrs */
            new org.jruby.ir.instructions.StoreLocalVarInstr
            dup
            aload 3 /* scope */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            aload 8 /* v */
            aload 1 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
            aload 8 /* v */
            invokespecial org.jruby.ir.instructions.StoreLocalVarInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/LocalVariable;)V
            invokeinterface java.util.ListIterator.add:(Ljava/lang/Object;)V
        end local 8 // org.jruby.ir.operands.LocalVariable v
        80: .line 304
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 77
        81: .line 308
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            pop
        82: .line 309
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        83: .line 310
            goto 86
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode java.util.Map java.util.Set org.jruby.ir.IRScope int int java.util.ListIterator org.jruby.ir.instructions.Instr
      StackMap stack:
        84: aload 2 /* excTargetDirtyVars */
            ifnull 86
        85: .line 312
            aload 2 /* excTargetDirtyVars */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        86: .line 316
      StackMap locals:
      StackMap stack:
            aload 7 /* i */
            instanceof org.jruby.ir.instructions.ResultInstr
            ifeq 92
        87: .line 317
            aload 7 /* i */
            checkcast org.jruby.ir.instructions.ResultInstr
            invokeinterface org.jruby.ir.instructions.ResultInstr.getResult:()Lorg/jruby/ir/operands/Variable;
            astore 8 /* v */
        start local 8 // org.jruby.ir.operands.Variable v
        88: .line 320
            aload 8 /* v */
            instanceof org.jruby.ir.operands.LocalVariable
            ifeq 92
            aload 8 /* v */
            invokevirtual org.jruby.ir.operands.Variable.isSelf:()Z
            ifne 92
        89: .line 321
            aload 8 /* v */
            checkcast org.jruby.ir.operands.LocalVariable
            astore 9 /* lv */
        start local 9 // org.jruby.ir.operands.LocalVariable lv
        90: .line 322
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            aload 9 /* lv */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        91: .line 325
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            aload 9 /* lv */
            aload 1 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.getLocalVarReplacement:(Lorg/jruby/ir/operands/LocalVariable;Ljava/util/Map;)Lorg/jruby/ir/operands/TemporaryLocalVariable;
            pop
        end local 9 // org.jruby.ir.operands.LocalVariable lv
        end local 8 // org.jruby.ir.operands.Variable v
        end local 7 // org.jruby.ir.instructions.Instr i
        92: .line 190
      StackMap locals:
      StackMap stack:
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 7
        93: .line 331
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.isExitBB:()Z
            ifeq 99
        94: .line 333
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.hasPrevious:()Z
            ifeq 95
            aload 6 /* instrs */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            pop
        95: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            aload 6 /* instrs */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.dirtyVars:Ljava/util/Set;
            aload 1 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.addScopeExitStoreLocalVars:(Ljava/util/ListIterator;Ljava/util/Set;Ljava/util/Map;)Z
            istore 7 /* f */
        start local 7 // boolean f
        96: .line 335
            iload 4 /* addedStores */
            ifne 97
            iload 7 /* f */
            ifne 97
            iconst_0
            goto 98
      StackMap locals: int
      StackMap stack:
        97: iconst_1
      StackMap locals:
      StackMap stack: int
        98: istore 4 /* addedStores */
        end local 7 // boolean f
        99: .line 338
      StackMap locals:
      StackMap stack:
            iload 4 /* addedStores */
            ireturn
        end local 6 // java.util.ListIterator instrs
        end local 5 // boolean scopeBindingHasEscaped
        end local 4 // boolean addedStores
        end local 3 // org.jruby.ir.IRScope scope
        end local 2 // java.util.Set excTargetDirtyVars
        end local 1 // java.util.Map varRenameMap
        end local 0 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0  100     0                    this  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;
            0  100     1            varRenameMap  Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
            0  100     2      excTargetDirtyVars  Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
            1  100     3                   scope  Lorg/jruby/ir/IRScope;
            2  100     4             addedStores  Z
            4  100     5  scopeBindingHasEscaped  Z
            5  100     6                  instrs  Ljava/util/ListIterator<Lorg/jruby/ir/instructions/Instr;>;
            8   92     7                       i  Lorg/jruby/ir/instructions/Instr;
           10   47     8                       o  Lorg/jruby/ir/operands/Operand;
           12   24     9                      cl  Lorg/jruby/ir/IRClosure;
           14   24    10            spillAllVars  Z
           15   24    11            newDirtyVars  Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
           17   21    12                       v  Lorg/jruby/ir/operands/LocalVariable;
           29   31     9                       v  Lorg/jruby/ir/operands/LocalVariable;
           37   47     9            newDirtyVars  Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;
           39   44    10                       v  Lorg/jruby/ir/operands/LocalVariable;
           51   56     8                     lvp  Lorg/jruby/ir/dataflow/analyses/LiveVariablesProblem;
           52   56     9                liveVars  Ljava/util/Collection<Lorg/jruby/ir/operands/LocalVariable;>;
           58   63     8                       f  Z
           68   70     8                       v  Lorg/jruby/ir/operands/LocalVariable;
           78   80     8                       v  Lorg/jruby/ir/operands/LocalVariable;
           88   92     8                       v  Lorg/jruby/ir/operands/Variable;
           90   92     9                      lv  Lorg/jruby/ir/operands/LocalVariable;
           96   99     7                       f  Z
    Signature: (Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;)Z
    MethodParameters:
                    Name  Flags
      varRenameMap        
      excTargetDirtyVars  

  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: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementNode.compute_MEET:(Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/jruby/ir/dataflow/FlowGraphNode<Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode;>;
SourceFile: "StoreLocalVarPlacementNode.java"