public class org.jruby.ir.interpreter.FullInterpreterContext extends org.jruby.ir.interpreter.InterpreterContext
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ir.interpreter.FullInterpreterContext
  super_class: org.jruby.ir.interpreter.InterpreterContext
{
  private org.jruby.ir.representations.CFG cfg;
    descriptor: Lorg/jruby/ir/representations/CFG;
    flags: (0x0002) ACC_PRIVATE

  private org.jruby.ir.representations.BasicBlock[] linearizedBBList;
    descriptor: [Lorg/jruby/ir/representations/BasicBlock;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, org.jruby.ir.dataflow.DataFlowProblem> dataFlowProblems;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/ir/dataflow/DataFlowProblem;>;

  private java.util.List<org.jruby.ir.passes.CompilerPass> executedPasses;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;

  private java.util.Set<org.jruby.ir.operands.LocalVariable> definedLocalVars;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;

  private java.util.Set<org.jruby.ir.operands.LocalVariable> usedLocalVars;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;

  public int floatVariableIndex;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int fixnumVariableIndex;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public int booleanVariableIndex;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  public void <init>(org.jruby.ir.IRScope, org.jruby.ir.representations.CFG, org.jruby.ir.representations.BasicBlock[]);
    descriptor: (Lorg/jruby/ir/IRScope;Lorg/jruby/ir/representations/CFG;[Lorg/jruby/ir/representations/BasicBlock;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
        start local 1 // org.jruby.ir.IRScope scope
        start local 2 // org.jruby.ir.representations.CFG cfg
        start local 3 // org.jruby.ir.representations.BasicBlock[] linearizedBBList
         0: .line 57
            aload 0 /* this */
            aload 1 /* scope */
            aconst_null
            invokespecial org.jruby.ir.interpreter.InterpreterContext.<init>:(Lorg/jruby/ir/IRScope;Ljava/util/List;)V
         1: .line 35
            aload 0 /* this */
            aconst_null
            putfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
         2: .line 41
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.jruby.ir.interpreter.FullInterpreterContext.executedPasses:Ljava/util/List;
         3: .line 51
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.ir.interpreter.FullInterpreterContext.floatVariableIndex:I
         4: .line 52
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.ir.interpreter.FullInterpreterContext.fixnumVariableIndex:I
         5: .line 53
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.ir.interpreter.FullInterpreterContext.booleanVariableIndex:I
         6: .line 59
            aload 0 /* this */
            aload 2 /* cfg */
            putfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
         7: .line 60
            aload 0 /* this */
            aload 3 /* linearizedBBList */
            putfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
         8: .line 61
            return
        end local 3 // org.jruby.ir.representations.BasicBlock[] linearizedBBList
        end local 2 // org.jruby.ir.representations.CFG cfg
        end local 1 // org.jruby.ir.IRScope scope
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            0    9     1             scope  Lorg/jruby/ir/IRScope;
            0    9     2               cfg  Lorg/jruby/ir/representations/CFG;
            0    9     3  linearizedBBList  [Lorg/jruby/ir/representations/BasicBlock;
    MethodParameters:
                  Name  Flags
      scope             
      cfg               
      linearizedBBList  

  public void <init>(org.jruby.ir.IRScope, org.jruby.ir.instructions.Instr[]);
    descriptor: (Lorg/jruby/ir/IRScope;[Lorg/jruby/ir/instructions/Instr;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
        start local 1 // org.jruby.ir.IRScope scope
        start local 2 // org.jruby.ir.instructions.Instr[] instructions
         0: .line 65
            aload 0 /* this */
            aload 1 /* scope */
            aconst_null
            invokespecial org.jruby.ir.interpreter.InterpreterContext.<init>:(Lorg/jruby/ir/IRScope;Ljava/util/List;)V
         1: .line 35
            aload 0 /* this */
            aconst_null
            putfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
         2: .line 41
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.jruby.ir.interpreter.FullInterpreterContext.executedPasses:Ljava/util/List;
         3: .line 51
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.ir.interpreter.FullInterpreterContext.floatVariableIndex:I
         4: .line 52
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.ir.interpreter.FullInterpreterContext.fixnumVariableIndex:I
         5: .line 53
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.ir.interpreter.FullInterpreterContext.booleanVariableIndex:I
         6: .line 67
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* instructions */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.buildCFG:([Lorg/jruby/ir/instructions/Instr;)Lorg/jruby/ir/representations/CFG;
            putfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
         7: .line 68
            return
        end local 2 // org.jruby.ir.instructions.Instr[] instructions
        end local 1 // org.jruby.ir.IRScope scope
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            0    8     1         scope  Lorg/jruby/ir/IRScope;
            0    8     2  instructions  [Lorg/jruby/ir/instructions/Instr;
    MethodParameters:
              Name  Flags
      scope         
      instructions  

  public boolean buildComplete();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 78
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  public org.jruby.ir.representations.BasicBlock[] linearizeBasicBlocks();
    descriptor: ()[Lorg/jruby/ir/representations/BasicBlock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 82
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
            invokestatic org.jruby.ir.representations.CFGLinearizer.linearize:(Lorg/jruby/ir/representations/CFG;)[Lorg/jruby/ir/representations/BasicBlock;
            putfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
         1: .line 83
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
            areturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  private org.jruby.ir.representations.CFG buildCFG(org.jruby.ir.instructions.Instr[]);
    descriptor: ([Lorg/jruby/ir/instructions/Instr;)Lorg/jruby/ir/representations/CFG;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
        start local 1 // org.jruby.ir.instructions.Instr[] instructions
         0: .line 87
            new org.jruby.ir.representations.CFG
            dup
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokespecial org.jruby.ir.representations.CFG.<init>:(Lorg/jruby/ir/IRScope;)V
            astore 2 /* newCFG */
        start local 2 // org.jruby.ir.representations.CFG newCFG
         1: .line 89
            aload 2 /* newCFG */
            aload 1 /* instructions */
            invokevirtual org.jruby.ir.representations.CFG.build:([Lorg/jruby/ir/instructions/Instr;)Lorg/jruby/dirgra/DirectedGraph;
            pop
         2: .line 91
            aload 2 /* newCFG */
            areturn
        end local 2 // org.jruby.ir.representations.CFG newCFG
        end local 1 // org.jruby.ir.instructions.Instr[] instructions
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            0    3     1  instructions  [Lorg/jruby/ir/instructions/Instr;
            1    3     2        newCFG  Lorg/jruby/ir/representations/CFG;
    MethodParameters:
              Name  Flags
      instructions  

  public boolean hasExplicitCallProtocol();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 96
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
            getstatic org.jruby.ir.IRFlags.HAS_EXPLICIT_CALL_PROTOCOL:Lorg/jruby/ir/IRFlags;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  public boolean pushNewDynScope();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 101
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
            getstatic org.jruby.ir.IRFlags.DYNSCOPE_ELIMINATED:Lorg/jruby/ir/IRFlags;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.reuseParentDynScope:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  public boolean popDynScope();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 106
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.pushNewDynScope:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.reuseParentDynScope:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  public boolean reuseParentDynScope();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 111
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getFlags:()Ljava/util/EnumSet;
            getstatic org.jruby.ir.IRFlags.REUSE_PARENT_DYNSCOPE:Lorg/jruby/ir/IRFlags;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  public void generateInstructionsForInterpretation();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 116
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.linearizeBasicBlocks:()[Lorg/jruby/ir/representations/BasicBlock;
            pop
         1: .line 119
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* newInstrs */
        start local 1 // java.util.List newInstrs
         2: .line 120
            iconst_0
            istore 2 /* ipc */
        start local 2 // int ipc
         3: .line 121
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getLinearizedBBList:()[Lorg/jruby/ir/representations/BasicBlock;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 18
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.util.List int top int int org.jruby.ir.representations.BasicBlock[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* b */
        start local 3 // org.jruby.ir.representations.BasicBlock b
         5: .line 124
            aload 3 /* b */
            invokevirtual org.jruby.ir.representations.BasicBlock.getLabel:()Lorg/jruby/ir/operands/Label;
            iload 2 /* ipc */
            invokevirtual org.jruby.ir.operands.Label.setTargetPC:(I)V
         6: .line 126
            aload 3 /* b */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            astore 7 /* bbInstrs */
        start local 7 // java.util.List bbInstrs
         7: .line 127
            aload 7 /* bbInstrs */
            invokeinterface java.util.List.size:()I
            istore 8 /* bbInstrsLength */
        start local 8 // int bbInstrsLength
         8: .line 129
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         9: goto 16
        10: .line 130
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.util.List int org.jruby.ir.representations.BasicBlock int int org.jruby.ir.representations.BasicBlock[] java.util.List int int
      StackMap stack:
            aload 7 /* bbInstrs */
            iload 9 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 10 /* instr */
        start local 10 // org.jruby.ir.instructions.Instr instr
        11: .line 131
            aload 10 /* instr */
            instanceof org.jruby.ir.instructions.ReceiveSelfInstr
            ifne 15
        12: .line 132
            aload 10 /* instr */
            instanceof org.jruby.ir.instructions.LabelInstr
            ifeq 13
            aload 10 /* instr */
            checkcast org.jruby.ir.instructions.LabelInstr
            invokevirtual org.jruby.ir.instructions.LabelInstr.getLabel:()Lorg/jruby/ir/operands/Label;
            iload 2 /* ipc */
            invokevirtual org.jruby.ir.operands.Label.setTargetPC:(I)V
        13: .line 133
      StackMap locals: org.jruby.ir.instructions.Instr
      StackMap stack:
            aload 1 /* newInstrs */
            aload 10 /* instr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 134
            iinc 2 /* ipc */ 1
        end local 10 // org.jruby.ir.instructions.Instr instr
        15: .line 129
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 9 /* i */
            iload 8 /* bbInstrsLength */
            if_icmplt 10
        end local 9 // int i
        end local 8 // int bbInstrsLength
        end local 7 // java.util.List bbInstrs
        end local 3 // org.jruby.ir.representations.BasicBlock b
        17: .line 121
            iinc 4 1
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.util.List int top int int org.jruby.ir.representations.BasicBlock[]
      StackMap stack:
        18: iload 4
            iload 5
            if_icmplt 4
        19: .line 139
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
            invokevirtual org.jruby.ir.representations.CFG.getExitBB:()Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.getLabel:()Lorg/jruby/ir/operands/Label;
            iload 2 /* ipc */
            iconst_1
            iadd
            invokevirtual org.jruby.ir.operands.Label.setTargetPC:(I)V
        20: .line 141
            aload 1 /* newInstrs */
            aload 1 /* newInstrs */
            invokeinterface java.util.List.size:()I
            anewarray org.jruby.ir.instructions.Instr
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr[]
            astore 3 /* linearizedInstrArray */
        start local 3 // org.jruby.ir.instructions.Instr[] linearizedInstrArray
        21: .line 143
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getLinearizedBBList:()[Lorg/jruby/ir/representations/BasicBlock;
            astore 4 /* basicBlocks */
        start local 4 // org.jruby.ir.representations.BasicBlock[] basicBlocks
        22: .line 144
            aload 0 /* this */
            iconst_2
            aload 4 /* basicBlocks */
            arraylength
            imul
            newarray 10
            putfield org.jruby.ir.interpreter.FullInterpreterContext.rescueIPCs:[I
        23: .line 147
            iconst_0
            istore 2 /* ipc */
        24: .line 148
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        25: goto 41
        26: .line 149
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.util.List int org.jruby.ir.instructions.Instr[] org.jruby.ir.representations.BasicBlock[] int
      StackMap stack:
            aload 4 /* basicBlocks */
            iload 5 /* i */
            aaload
            astore 6 /* bb */
        start local 6 // org.jruby.ir.representations.BasicBlock bb
        27: .line 150
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
            aload 6 /* bb */
            invokevirtual org.jruby.ir.representations.CFG.getRescuerBBFor:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/representations/BasicBlock;
            astore 7 /* rescuerBB */
        start local 7 // org.jruby.ir.representations.BasicBlock rescuerBB
        28: .line 151
            aload 7 /* rescuerBB */
            ifnonnull 29
            iconst_m1
            goto 30
      StackMap locals: org.jruby.ir.representations.BasicBlock org.jruby.ir.representations.BasicBlock
      StackMap stack:
        29: aload 7 /* rescuerBB */
            invokevirtual org.jruby.ir.representations.BasicBlock.getLabel:()Lorg/jruby/ir/operands/Label;
            invokevirtual org.jruby.ir.operands.Label.getTargetPC:()I
      StackMap locals:
      StackMap stack: int
        30: istore 8 /* rescuerPC */
        start local 8 // int rescuerPC
        31: .line 152
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.rescueIPCs:[I
            iload 5 /* i */
            iconst_2
            imul
            iload 2 /* ipc */
            aload 6 /* bb */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iadd
            iastore
        32: .line 153
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.rescueIPCs:[I
            iload 5 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            iload 8 /* rescuerPC */
            iastore
        33: .line 155
            aload 6 /* bb */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 39
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.util.List int org.jruby.ir.instructions.Instr[] org.jruby.ir.representations.BasicBlock[] int org.jruby.ir.representations.BasicBlock org.jruby.ir.representations.BasicBlock int top java.util.Iterator
      StackMap stack:
        34: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 9 /* instr */
        start local 9 // org.jruby.ir.instructions.Instr instr
        35: .line 158
            aload 9 /* instr */
            instanceof org.jruby.ir.instructions.ReceiveSelfInstr
            ifne 38
        36: .line 159
            iinc 2 /* ipc */ 1
        37: .line 160
            goto 39
        38: .line 161
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.util.List int org.jruby.ir.instructions.Instr[] org.jruby.ir.representations.BasicBlock[] int org.jruby.ir.representations.BasicBlock org.jruby.ir.representations.BasicBlock int org.jruby.ir.instructions.Instr java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.rescueIPCs:[I
            iload 5 /* i */
            iconst_2
            imul
            dup2
            iaload
            iconst_1
            isub
            iastore
        end local 9 // org.jruby.ir.instructions.Instr instr
        39: .line 155
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.util.List int org.jruby.ir.instructions.Instr[] org.jruby.ir.representations.BasicBlock[] int org.jruby.ir.representations.BasicBlock org.jruby.ir.representations.BasicBlock int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        end local 8 // int rescuerPC
        end local 7 // org.jruby.ir.representations.BasicBlock rescuerBB
        end local 6 // org.jruby.ir.representations.BasicBlock bb
        40: .line 148
            iinc 5 /* i */ 1
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.util.List int org.jruby.ir.instructions.Instr[] org.jruby.ir.representations.BasicBlock[] int
      StackMap stack:
        41: iload 5 /* i */
            aload 4 /* basicBlocks */
            arraylength
            if_icmplt 26
        end local 5 // int i
        42: .line 166
            aload 0 /* this */
            aload 3 /* linearizedInstrArray */
            putfield org.jruby.ir.interpreter.FullInterpreterContext.instructions:[Lorg/jruby/ir/instructions/Instr;
        43: .line 167
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getTemporaryVariablesCount:()I
            putfield org.jruby.ir.interpreter.FullInterpreterContext.temporaryVariableCount:I
        44: .line 171
            return
        end local 4 // org.jruby.ir.representations.BasicBlock[] basicBlocks
        end local 3 // org.jruby.ir.instructions.Instr[] linearizedInstrArray
        end local 2 // int ipc
        end local 1 // java.util.List newInstrs
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   45     0                  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            2   45     1             newInstrs  Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
            3   45     2                   ipc  I
            5   17     3                     b  Lorg/jruby/ir/representations/BasicBlock;
            7   17     7              bbInstrs  Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
            8   17     8        bbInstrsLength  I
            9   17     9                     i  I
           11   15    10                 instr  Lorg/jruby/ir/instructions/Instr;
           21   45     3  linearizedInstrArray  [Lorg/jruby/ir/instructions/Instr;
           22   45     4           basicBlocks  [Lorg/jruby/ir/representations/BasicBlock;
           25   42     5                     i  I
           27   40     6                    bb  Lorg/jruby/ir/representations/BasicBlock;
           28   40     7             rescuerBB  Lorg/jruby/ir/representations/BasicBlock;
           31   40     8             rescuerPC  I
           35   39     9                 instr  Lorg/jruby/ir/instructions/Instr;

  public org.jruby.ir.representations.CFG getCFG();
    descriptor: ()Lorg/jruby/ir/representations/CFG;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 175
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
            areturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  public void computeScopeFlagsFromInstructions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 180
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
            invokevirtual org.jruby.ir.representations.CFG.getBasicBlocks:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.representations.BasicBlock
            astore 1 /* b */
        start local 1 // org.jruby.ir.representations.BasicBlock b
         2: .line 181
            aload 1 /* b */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext org.jruby.ir.representations.BasicBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 3 /* i */
        start local 3 // org.jruby.ir.instructions.Instr i
         4: .line 182
            aload 3 /* i */
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.instructions.Instr.computeScopeFlags:(Lorg/jruby/ir/IRScope;)Z
            pop
        end local 3 // org.jruby.ir.instructions.Instr i
         5: .line 181
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 1 // org.jruby.ir.representations.BasicBlock b
         6: .line 180
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         7: .line 185
            return
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            2    6     1     b  Lorg/jruby/ir/representations/BasicBlock;
            4    5     3     i  Lorg/jruby/ir/instructions/Instr;

  public java.util.Map<java.lang.String, org.jruby.ir.dataflow.DataFlowProblem> getDataFlowProblems();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 188
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.dataFlowProblems:Ljava/util/Map;
            ifnonnull 1
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.jruby.ir.interpreter.FullInterpreterContext.dataFlowProblems:Ljava/util/Map;
         1: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.dataFlowProblems:Ljava/util/Map;
            areturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/jruby/ir/dataflow/DataFlowProblem;>;

  public java.util.List<org.jruby.ir.passes.CompilerPass> getExecutedPasses();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 193
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.executedPasses:Ljava/util/List;
            areturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
    Signature: ()Ljava/util/List<Lorg/jruby/ir/passes/CompilerPass;>;

  public org.jruby.ir.representations.BasicBlock[] getLinearizedBBList();
    descriptor: ()[Lorg/jruby/ir/representations/BasicBlock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 198
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
            areturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  public java.lang.String toStringInstrs();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 203
            new java.lang.StringBuilder
            dup
            ldc "\nCFG:\n"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
            invokevirtual org.jruby.ir.representations.CFG.toStringGraph:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\nInstructions:\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
            invokevirtual org.jruby.ir.representations.CFG.toStringInstrs:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;

  public java.lang.String toStringLinearized();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 207
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         1: .line 209
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getLinearizedBBList:()[Lorg/jruby/ir/representations/BasicBlock;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext java.lang.StringBuilder top int int org.jruby.ir.representations.BasicBlock[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* bb */
        start local 2 // org.jruby.ir.representations.BasicBlock bb
         3: .line 210
            aload 1 /* buf */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 2 /* bb */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            aload 2 /* bb */
            invokevirtual org.jruby.ir.representations.BasicBlock.toStringInstrs:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 2 // org.jruby.ir.representations.BasicBlock bb
         4: .line 209
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 213
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buf
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            1    7     1   buf  Ljava/lang/StringBuilder;
            3    4     2    bb  Lorg/jruby/ir/representations/BasicBlock;

  public org.jruby.ir.interpreter.FullInterpreterContext duplicate();
    descriptor: ()Lorg/jruby/ir/interpreter/FullInterpreterContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 218
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.cfg:Lorg/jruby/ir/representations/CFG;
            new org.jruby.ir.transformations.inlining.SimpleCloneInfo
            dup
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            iconst_0
            iconst_1
            invokespecial org.jruby.ir.transformations.inlining.SimpleCloneInfo.<init>:(Lorg/jruby/ir/IRScope;ZZ)V
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.representations.CFG.clone:(Lorg/jruby/ir/transformations/inlining/CloneInfo;Lorg/jruby/ir/IRScope;)Lorg/jruby/ir/representations/CFG;
            astore 1 /* newCFG */
        start local 1 // org.jruby.ir.representations.CFG newCFG
         1: .line 219
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
            arraylength
            anewarray org.jruby.ir.representations.BasicBlock
            astore 2 /* newLinearizedBBList */
        start local 2 // org.jruby.ir.representations.BasicBlock[] newLinearizedBBList
         2: .line 221
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 222
      StackMap locals: org.jruby.ir.representations.CFG org.jruby.ir.representations.BasicBlock[] int
      StackMap stack:
            aload 2 /* newLinearizedBBList */
            iload 3 /* i */
            aload 1 /* newCFG */
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
            iload 3 /* i */
            aaload
            invokevirtual org.jruby.ir.representations.BasicBlock.getLabel:()Lorg/jruby/ir/operands/Label;
            invokevirtual org.jruby.ir.representations.CFG.getBBForLabel:(Lorg/jruby/ir/operands/Label;)Lorg/jruby/ir/representations/BasicBlock;
            aastore
         5: .line 221
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.linearizedBBList:[Lorg/jruby/ir/representations/BasicBlock;
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 225
            new org.jruby.ir.interpreter.FullInterpreterContext
            dup
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            aload 1 /* newCFG */
            aload 2 /* newLinearizedBBList */
            invokespecial org.jruby.ir.interpreter.FullInterpreterContext.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/representations/CFG;[Lorg/jruby/ir/representations/BasicBlock;)V
         8: areturn
        end local 2 // org.jruby.ir.representations.BasicBlock[] newLinearizedBBList
        end local 1 // org.jruby.ir.representations.CFG newCFG
         9: .line 226
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
        10: .line 227
            aload 1 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        11: .line 228
            aconst_null
            areturn
        end local 1 // java.lang.Throwable t
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0                 this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            1    9     1               newCFG  Lorg/jruby/ir/representations/CFG;
            2    9     2  newLinearizedBBList  [Lorg/jruby/ir/representations/BasicBlock;
            3    7     3                    i  I
           10   12     1                    t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     8       9  Class java.lang.Throwable

  public int determineRPC(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
        start local 1 // int ipc
         0: .line 234
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.rescueIPCs:[I
            arraylength
            istore 2 /* length */
        start local 2 // int length
         1: .line 235
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 236
      StackMap locals: int int
      StackMap stack:
            iload 1 /* ipc */
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.rescueIPCs:[I
            iload 3 /* i */
            iaload
            if_icmpgt 4
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.rescueIPCs:[I
            iload 3 /* i */
            iconst_1
            iadd
            iaload
            ireturn
         4: .line 235
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 2
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            iconst_1
            iadd
            iload 2 /* length */
            if_icmplt 3
        end local 3 // int i
         6: .line 239
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "BUG: no RPC found for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getFileName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getName:()Lorg/jruby/RubySymbol;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* ipc */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // int length
        end local 1 // int ipc
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            0    7     1     ipc  I
            1    7     2  length  I
            2    6     3       i  I
    MethodParameters:
      Name  Flags
      ipc   

  public org.jruby.ir.representations.BasicBlock findBasicBlockOf(long);
    descriptor: (J)Lorg/jruby/ir/representations/BasicBlock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
        start local 1 // long callsiteId
         0: .line 243
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.linearizeBasicBlocks:()[Lorg/jruby/ir/representations/BasicBlock;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext long top int int org.jruby.ir.representations.BasicBlock[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* basicBlock */
        start local 3 // org.jruby.ir.representations.BasicBlock basicBlock
         2: .line 244
            aload 3 /* basicBlock */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 7
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext long org.jruby.ir.representations.BasicBlock int int org.jruby.ir.representations.BasicBlock[] top java.util.Iterator
      StackMap stack:
         3: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 7 /* instr */
        start local 7 // org.jruby.ir.instructions.Instr instr
         4: .line 245
            aload 7 /* instr */
            instanceof org.jruby.ir.instructions.Site
            ifeq 7
         5: .line 246
            aload 7 /* instr */
            checkcast org.jruby.ir.instructions.Site
            astore 9 /* site */
        start local 9 // org.jruby.ir.instructions.Site site
         6: .line 248
            aload 9 /* site */
            invokeinterface org.jruby.ir.instructions.Site.getCallSiteId:()J
            lload 1 /* callsiteId */
            lcmp
            ifne 7
            aload 3 /* basicBlock */
            areturn
        end local 9 // org.jruby.ir.instructions.Site site
        end local 7 // org.jruby.ir.instructions.Instr instr
         7: .line 244
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 3 // org.jruby.ir.representations.BasicBlock basicBlock
         8: .line 243
            iinc 4 1
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext long top int int org.jruby.ir.representations.BasicBlock[]
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 1
        10: .line 253
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bug: Looking for callsiteId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* callsiteId */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // long callsiteId
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            0   11     1  callsiteId  J
            2    8     3  basicBlock  Lorg/jruby/ir/representations/BasicBlock;
            4    7     7       instr  Lorg/jruby/ir/instructions/Instr;
            6    7     9        site  Lorg/jruby/ir/instructions/Site;
    MethodParameters:
            Name  Flags
      callsiteId  

  public java.util.Set<org.jruby.ir.operands.LocalVariable> getUsedLocalVariables();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 260
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.usedLocalVars:Ljava/util/Set;
            areturn
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
    Signature: ()Ljava/util/Set<Lorg/jruby/ir/operands/LocalVariable;>;

  public void setUpUseDefLocalVarMaps();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
         0: .line 264
            aload 0 /* this */
            new java.util.HashSet
            dup
            iconst_1
            invokespecial java.util.HashSet.<init>:(I)V
            putfield org.jruby.ir.interpreter.FullInterpreterContext.definedLocalVars:Ljava/util/Set;
         1: .line 265
            aload 0 /* this */
            new java.util.HashSet
            dup
            iconst_1
            invokespecial java.util.HashSet.<init>:(I)V
            putfield org.jruby.ir.interpreter.FullInterpreterContext.usedLocalVars:Ljava/util/Set;
         2: .line 266
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getCFG:()Lorg/jruby/ir/representations/CFG;
            invokevirtual org.jruby.ir.representations.CFG.getBasicBlocks:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 15
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.representations.BasicBlock
            astore 1 /* bb */
        start local 1 // org.jruby.ir.representations.BasicBlock bb
         4: .line 267
            aload 1 /* bb */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext org.jruby.ir.representations.BasicBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 3 /* i */
        start local 3 // org.jruby.ir.instructions.Instr i
         6: .line 268
            aload 3 /* i */
            invokevirtual org.jruby.ir.instructions.Instr.getUsedVariables:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext org.jruby.ir.representations.BasicBlock java.util.Iterator org.jruby.ir.instructions.Instr java.util.Iterator top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.Variable
            astore 5 /* v */
        start local 5 // org.jruby.ir.operands.Variable v
         8: .line 269
            aload 5 /* v */
            instanceof org.jruby.ir.operands.LocalVariable
            ifeq 9
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.usedLocalVars:Ljava/util/Set;
            aload 5 /* v */
            checkcast org.jruby.ir.operands.LocalVariable
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.jruby.ir.operands.Variable v
         9: .line 268
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 272
            aload 3 /* i */
            instanceof org.jruby.ir.instructions.ResultInstr
            ifeq 14
        11: .line 273
            aload 3 /* i */
            checkcast org.jruby.ir.instructions.ResultInstr
            invokeinterface org.jruby.ir.instructions.ResultInstr.getResult:()Lorg/jruby/ir/operands/Variable;
            astore 5 /* v */
        start local 5 // org.jruby.ir.operands.Variable v
        12: .line 275
            aload 5 /* v */
            instanceof org.jruby.ir.operands.LocalVariable
            ifeq 14
            aload 5 /* v */
            checkcast org.jruby.ir.operands.LocalVariable
            invokevirtual org.jruby.ir.operands.LocalVariable.isOuterScopeVar:()Z
            ifne 14
        13: .line 276
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.definedLocalVars:Ljava/util/Set;
            aload 5 /* v */
            checkcast org.jruby.ir.operands.LocalVariable
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.jruby.ir.operands.Variable v
        end local 3 // org.jruby.ir.instructions.Instr i
        14: .line 267
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext org.jruby.ir.representations.BasicBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 1 // org.jruby.ir.representations.BasicBlock bb
        15: .line 266
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        16: .line 282
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getClosures:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 19
      StackMap locals:
      StackMap stack:
        17: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.IRClosure
            astore 1 /* cl */
        start local 1 // org.jruby.ir.IRClosure cl
        18: .line 283
            aload 1 /* cl */
            invokevirtual org.jruby.ir.IRClosure.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.setUpUseDefLocalVarMaps:()V
        end local 1 // org.jruby.ir.IRClosure cl
        19: .line 282
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 285
            return
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            4   15     1    bb  Lorg/jruby/ir/representations/BasicBlock;
            6   14     3     i  Lorg/jruby/ir/instructions/Instr;
            8    9     5     v  Lorg/jruby/ir/operands/Variable;
           12   14     5     v  Lorg/jruby/ir/operands/Variable;
           18   19     1    cl  Lorg/jruby/ir/IRClosure;

  public boolean usesLocalVariable(org.jruby.ir.operands.Variable);
    descriptor: (Lorg/jruby/ir/operands/Variable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
        start local 1 // org.jruby.ir.operands.Variable v
         0: .line 288
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.usedLocalVars:Ljava/util/Set;
            ifnonnull 1
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.setUpUseDefLocalVarMaps:()V
         1: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.usedLocalVars:Ljava/util/Set;
            aload 1 /* v */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_1
            ireturn
         2: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getClosures:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext org.jruby.ir.operands.Variable top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.IRClosure
            astore 2 /* cl */
        start local 2 // org.jruby.ir.IRClosure cl
         4: .line 292
            aload 2 /* cl */
            invokevirtual org.jruby.ir.IRClosure.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
            aload 1 /* v */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.usesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
            ifeq 5
            iconst_1
            ireturn
        end local 2 // org.jruby.ir.IRClosure cl
         5: .line 291
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 295
            iconst_0
            ireturn
        end local 1 // org.jruby.ir.operands.Variable v
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            0    7     1     v  Lorg/jruby/ir/operands/Variable;
            4    5     2    cl  Lorg/jruby/ir/IRClosure;
    MethodParameters:
      Name  Flags
      v     

  public boolean definesLocalVariable(org.jruby.ir.operands.Variable);
    descriptor: (Lorg/jruby/ir/operands/Variable;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
        start local 1 // org.jruby.ir.operands.Variable v
         0: .line 299
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.definedLocalVars:Ljava/util/Set;
            ifnonnull 1
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.setUpUseDefLocalVarMaps:()V
         1: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ir.interpreter.FullInterpreterContext.definedLocalVars:Ljava/util/Set;
            aload 1 /* v */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_1
            ireturn
         2: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getClosures:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.jruby.ir.interpreter.FullInterpreterContext org.jruby.ir.operands.Variable top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.IRClosure
            astore 2 /* cl */
        start local 2 // org.jruby.ir.IRClosure cl
         4: .line 303
            aload 2 /* cl */
            invokevirtual org.jruby.ir.IRClosure.getFullInterpreterContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
            aload 1 /* v */
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.definesLocalVariable:(Lorg/jruby/ir/operands/Variable;)Z
            ifeq 5
            iconst_1
            ireturn
        end local 2 // org.jruby.ir.IRClosure cl
         5: .line 302
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 306
            iconst_0
            ireturn
        end local 1 // org.jruby.ir.operands.Variable v
        end local 0 // org.jruby.ir.interpreter.FullInterpreterContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/jruby/ir/interpreter/FullInterpreterContext;
            0    7     1     v  Lorg/jruby/ir/operands/Variable;
            4    5     2    cl  Lorg/jruby/ir/IRClosure;
    MethodParameters:
      Name  Flags
      v     
}
SourceFile: "FullInterpreterContext.java"