public class org.jruby.ir.passes.EnsureTempsAssigned extends org.jruby.ir.passes.CompilerPass
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ir.passes.EnsureTempsAssigned
  super_class: org.jruby.ir.passes.CompilerPass
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.passes.EnsureTempsAssigned this
         0: .line 15
            aload 0 /* this */
            invokespecial org.jruby.ir.passes.CompilerPass.<init>:()V
            return
        end local 0 // org.jruby.ir.passes.EnsureTempsAssigned this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/passes/EnsureTempsAssigned;

  public java.lang.String getLabel();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.passes.EnsureTempsAssigned this
         0: .line 18
            ldc "Ensure Temporary Variables Assigned"
            areturn
        end local 0 // org.jruby.ir.passes.EnsureTempsAssigned this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/passes/EnsureTempsAssigned;

  public java.lang.Object execute(org.jruby.ir.IRScope, java.lang.Object[]);
    descriptor: (Lorg/jruby/ir/IRScope;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.ir.passes.EnsureTempsAssigned this
        start local 1 // org.jruby.ir.IRScope scope
        start local 2 // java.lang.Object[] data
         0: .line 23
            aload 0 /* this */
            aload 1 /* scope */
            invokevirtual org.jruby.ir.IRScope.getCFG:()Lorg/jruby/ir/representations/CFG;
            invokevirtual org.jruby.ir.passes.EnsureTempsAssigned.processCFG:(Lorg/jruby/ir/representations/CFG;)V
         1: .line 25
            aconst_null
            areturn
        end local 2 // java.lang.Object[] data
        end local 1 // org.jruby.ir.IRScope scope
        end local 0 // org.jruby.ir.passes.EnsureTempsAssigned this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/jruby/ir/passes/EnsureTempsAssigned;
            0    2     1  scope  Lorg/jruby/ir/IRScope;
            0    2     2   data  [Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      scope  
      data   

  private void processCFG(org.jruby.ir.representations.CFG);
    descriptor: (Lorg/jruby/ir/representations/CFG;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.jruby.ir.passes.EnsureTempsAssigned this
        start local 1 // org.jruby.ir.representations.CFG cfg
         0: .line 29
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* names */
        start local 2 // java.util.Set names
         1: .line 30
            aload 1 /* cfg */
            invokevirtual org.jruby.ir.representations.CFG.getBasicBlocks:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: org.jruby.ir.passes.EnsureTempsAssigned org.jruby.ir.representations.CFG java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.representations.BasicBlock
            astore 3 /* b */
        start local 3 // org.jruby.ir.representations.BasicBlock b
         3: .line 31
            aload 3 /* b */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 10
      StackMap locals: org.jruby.ir.passes.EnsureTempsAssigned org.jruby.ir.representations.CFG java.util.Set org.jruby.ir.representations.BasicBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 5 /* i */
        start local 5 // org.jruby.ir.instructions.Instr i
         5: .line 32
            aload 5 /* i */
            invokevirtual org.jruby.ir.instructions.Instr.getUsedVariables:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 9
      StackMap locals: org.jruby.ir.passes.EnsureTempsAssigned org.jruby.ir.representations.CFG java.util.Set org.jruby.ir.representations.BasicBlock java.util.Iterator org.jruby.ir.instructions.Instr java.util.Iterator top java.util.Iterator
      StackMap stack:
         6: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.Variable
            astore 7 /* v */
        start local 7 // org.jruby.ir.operands.Variable v
         7: .line 33
            aload 7 /* v */
            instanceof org.jruby.ir.operands.TemporaryVariable
            ifeq 9
         8: .line 34
            aload 2 /* names */
            aload 7 /* v */
            checkcast org.jruby.ir.operands.TemporaryVariable
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.jruby.ir.operands.Variable v
         9: .line 32
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 5 // org.jruby.ir.instructions.Instr i
        10: .line 31
      StackMap locals: org.jruby.ir.passes.EnsureTempsAssigned org.jruby.ir.representations.CFG java.util.Set org.jruby.ir.representations.BasicBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 3 // org.jruby.ir.representations.BasicBlock b
        11: .line 30
      StackMap locals: org.jruby.ir.passes.EnsureTempsAssigned org.jruby.ir.representations.CFG java.util.Set top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        12: .line 40
            aload 1 /* cfg */
            invokevirtual org.jruby.ir.representations.CFG.getEntryBB:()Lorg/jruby/ir/representations/BasicBlock;
            astore 3 /* bb */
        start local 3 // org.jruby.ir.representations.BasicBlock bb
        13: .line 41
            iconst_0
            istore 4 /* index */
        start local 4 // int index
        14: .line 42
            aconst_null
            astore 5 /* first */
        start local 5 // org.jruby.ir.operands.TemporaryVariable first
        15: .line 43
            aload 2 /* names */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 22
      StackMap locals: org.jruby.ir.passes.EnsureTempsAssigned org.jruby.ir.representations.CFG java.util.Set org.jruby.ir.representations.BasicBlock int org.jruby.ir.operands.TemporaryVariable top java.util.Iterator
      StackMap stack:
        16: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.operands.TemporaryVariable
            astore 6 /* name */
        start local 6 // org.jruby.ir.operands.TemporaryVariable name
        17: .line 44
            aload 5 /* first */
            ifnonnull 21
        18: .line 45
            aload 3 /* bb */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            iload 4 /* index */
            iinc 4 /* index */ 1
            new org.jruby.ir.instructions.CopyInstr
            dup
            aload 6 /* name */
            new org.jruby.ir.operands.Nil
            dup
            invokespecial org.jruby.ir.operands.Nil.<init>:()V
            invokespecial org.jruby.ir.instructions.CopyInstr.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        19: .line 46
            aload 6 /* name */
            astore 5 /* first */
        20: .line 47
            goto 22
        21: .line 48
      StackMap locals: org.jruby.ir.passes.EnsureTempsAssigned org.jruby.ir.representations.CFG java.util.Set org.jruby.ir.representations.BasicBlock int org.jruby.ir.operands.TemporaryVariable org.jruby.ir.operands.TemporaryVariable java.util.Iterator
      StackMap stack:
            aload 3 /* bb */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            iload 4 /* index */
            iinc 4 /* index */ 1
            new org.jruby.ir.instructions.CopyInstr
            dup
            aload 6 /* name */
            aload 5 /* first */
            invokespecial org.jruby.ir.instructions.CopyInstr.<init>:(Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;)V
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        end local 6 // org.jruby.ir.operands.TemporaryVariable name
        22: .line 43
      StackMap locals: org.jruby.ir.passes.EnsureTempsAssigned org.jruby.ir.representations.CFG java.util.Set org.jruby.ir.representations.BasicBlock int org.jruby.ir.operands.TemporaryVariable top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        23: .line 51
            return
        end local 5 // org.jruby.ir.operands.TemporaryVariable first
        end local 4 // int index
        end local 3 // org.jruby.ir.representations.BasicBlock bb
        end local 2 // java.util.Set names
        end local 1 // org.jruby.ir.representations.CFG cfg
        end local 0 // org.jruby.ir.passes.EnsureTempsAssigned this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   24     0   this  Lorg/jruby/ir/passes/EnsureTempsAssigned;
            0   24     1    cfg  Lorg/jruby/ir/representations/CFG;
            1   24     2  names  Ljava/util/Set<Lorg/jruby/ir/operands/TemporaryVariable;>;
            3   11     3      b  Lorg/jruby/ir/representations/BasicBlock;
            5   10     5      i  Lorg/jruby/ir/instructions/Instr;
            7    9     7      v  Lorg/jruby/ir/operands/Variable;
           13   24     3     bb  Lorg/jruby/ir/representations/BasicBlock;
           14   24     4  index  I
           15   24     5  first  Lorg/jruby/ir/operands/TemporaryVariable;
           17   22     6   name  Lorg/jruby/ir/operands/TemporaryVariable;
    MethodParameters:
      Name  Flags
      cfg   
}
SourceFile: "EnsureTempsAssigned.java"