public class org.jruby.ir.passes.AddLocalVarLoadStoreInstructions 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.AddLocalVarLoadStoreInstructions
  super_class: org.jruby.ir.passes.CompilerPass
{
  public static java.util.List<java.lang.Class<? extends org.jruby.ir.passes.CompilerPass>> DEPENDENCIES;
    descriptor: Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Signature: Ljava/util/List<Ljava/lang/Class<+Lorg/jruby/ir/passes/CompilerPass;>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 28
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/jruby/ir/passes/LiveVariableAnalysis;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            putstatic org.jruby.ir.passes.AddLocalVarLoadStoreInstructions.DEPENDENCIES:Ljava/util/List;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
         0: .line 17
            aload 0 /* this */
            invokespecial org.jruby.ir.passes.CompilerPass.<init>:()V
            return
        end local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/passes/AddLocalVarLoadStoreInstructions;

  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.AddLocalVarLoadStoreInstructions this
         0: .line 20
            ldc "Add Local Variable Load/Store Instructions"
            areturn
        end local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/passes/AddLocalVarLoadStoreInstructions;

  public java.lang.String getShortLabel();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
         0: .line 25
            ldc "Add LVar L/S"
            areturn
        end local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/passes/AddLocalVarLoadStoreInstructions;

  public java.util.List<java.lang.Class<? extends org.jruby.ir.passes.CompilerPass>> getDependencies();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
         0: .line 32
            getstatic org.jruby.ir.passes.AddLocalVarLoadStoreInstructions.DEPENDENCIES:Ljava/util/List;
            areturn
        end local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/passes/AddLocalVarLoadStoreInstructions;
    Signature: ()Ljava/util/List<Ljava/lang/Class<+Lorg/jruby/ir/passes/CompilerPass;>;>;

  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=11, args_size=3
        start local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
        start local 1 // org.jruby.ir.IRScope s
        start local 2 // java.lang.Object[] data
         0: .line 37
            new org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem
            dup
            invokespecial org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.<init>:()V
            astore 3 /* slvp */
        start local 3 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem slvp
         1: .line 38
            aload 1 /* s */
            invokevirtual org.jruby.ir.IRScope.getExecutionContext:()Lorg/jruby/ir/interpreter/FullInterpreterContext;
            invokevirtual org.jruby.ir.interpreter.FullInterpreterContext.getFlags:()Ljava/util/EnumSet;
            astore 4 /* flags */
        start local 4 // java.util.EnumSet flags
         2: .line 41
            aload 4 /* flags */
            getstatic org.jruby.ir.IRFlags.DYNSCOPE_ELIMINATED:Lorg/jruby/ir/IRFlags;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 3
            aload 4 /* flags */
            getstatic org.jruby.ir.IRFlags.REUSE_PARENT_DYNSCOPE:Lorg/jruby/ir/IRFlags;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 19
         3: .line 42
      StackMap locals: org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem java.util.EnumSet
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* varRenameMap */
        start local 5 // java.util.Map varRenameMap
         4: .line 49
            aload 3 /* slvp */
            aload 1 /* s */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.setup:(Lorg/jruby/ir/IRScope;)V
         5: .line 50
            aload 3 /* slvp */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.compute_MOP_Solution:()V
         6: .line 53
            aload 3 /* slvp */
            aload 5 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem.addStores:(Ljava/util/Map;)V
         7: .line 56
            new org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem
            dup
            invokespecial org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem.<init>:()V
            astore 6 /* llvp */
        start local 6 // org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem llvp
         8: .line 57
            aload 6 /* llvp */
            aload 1 /* s */
            invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem.setup:(Lorg/jruby/ir/IRScope;)V
         9: .line 58
            aload 6 /* llvp */
            invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem.compute_MOP_Solution:()V
        10: .line 61
            aload 6 /* llvp */
            aload 5 /* varRenameMap */
            invokevirtual org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem.addLoads:(Ljava/util/Map;)V
        11: .line 64
            aload 1 /* s */
            invokevirtual org.jruby.ir.IRScope.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 8
            goto 17
      StackMap locals: org.jruby.ir.passes.AddLocalVarLoadStoreInstructions org.jruby.ir.IRScope java.lang.Object[] org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem java.util.EnumSet java.util.Map org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem top java.util.Iterator
      StackMap stack:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.representations.BasicBlock
            astore 7 /* b */
        start local 7 // org.jruby.ir.representations.BasicBlock b
        13: .line 65
            aload 7 /* b */
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 16
      StackMap locals: org.jruby.ir.passes.AddLocalVarLoadStoreInstructions org.jruby.ir.IRScope java.lang.Object[] org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem java.util.EnumSet java.util.Map org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem org.jruby.ir.representations.BasicBlock java.util.Iterator top java.util.Iterator
      StackMap stack:
        14: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 9 /* i */
        start local 9 // org.jruby.ir.instructions.Instr i
        15: aload 9 /* i */
            aload 5 /* varRenameMap */
            invokevirtual org.jruby.ir.instructions.Instr.renameVars:(Ljava/util/Map;)V
        end local 9 // org.jruby.ir.instructions.Instr i
      StackMap locals:
      StackMap stack:
        16: aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 7 // org.jruby.ir.representations.BasicBlock b
        17: .line 64
      StackMap locals: org.jruby.ir.passes.AddLocalVarLoadStoreInstructions org.jruby.ir.IRScope java.lang.Object[] org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem java.util.EnumSet java.util.Map org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        18: .line 70
            new org.jruby.ir.passes.LiveVariableAnalysis
            dup
            invokespecial org.jruby.ir.passes.LiveVariableAnalysis.<init>:()V
            aload 1 /* s */
            invokevirtual org.jruby.ir.passes.LiveVariableAnalysis.invalidate:(Lorg/jruby/ir/IRScope;)Z
            pop
        end local 6 // org.jruby.ir.dataflow.analyses.LoadLocalVarPlacementProblem llvp
        end local 5 // java.util.Map varRenameMap
        19: .line 73
      StackMap locals: org.jruby.ir.passes.AddLocalVarLoadStoreInstructions org.jruby.ir.IRScope java.lang.Object[] org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem java.util.EnumSet
      StackMap stack:
            aload 1 /* s */
            aload 3 /* slvp */
            invokevirtual org.jruby.ir.IRScope.putStoreLocalVarPlacementProblem:(Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;)V
        20: .line 75
            aload 3 /* slvp */
            areturn
        end local 4 // java.util.EnumSet flags
        end local 3 // org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem slvp
        end local 2 // java.lang.Object[] data
        end local 1 // org.jruby.ir.IRScope s
        end local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Lorg/jruby/ir/passes/AddLocalVarLoadStoreInstructions;
            0   21     1             s  Lorg/jruby/ir/IRScope;
            0   21     2          data  [Ljava/lang/Object;
            1   21     3          slvp  Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;
            2   21     4         flags  Ljava/util/EnumSet<Lorg/jruby/ir/IRFlags;>;
            4   19     5  varRenameMap  Ljava/util/Map<Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;>;
            8   19     6          llvp  Lorg/jruby/ir/dataflow/analyses/LoadLocalVarPlacementProblem;
           13   17     7             b  Lorg/jruby/ir/representations/BasicBlock;
           15   16     9             i  Lorg/jruby/ir/instructions/Instr;
    MethodParameters:
      Name  Flags
      s     
      data  

  public java.lang.Object previouslyRun(org.jruby.ir.IRScope);
    descriptor: (Lorg/jruby/ir/IRScope;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
        start local 1 // org.jruby.ir.IRScope scope
         0: .line 80
            aload 1 /* scope */
            invokevirtual org.jruby.ir.IRScope.getStoreLocalVarPlacementProblem:()Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;
            areturn
        end local 1 // org.jruby.ir.IRScope scope
        end local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/ir/passes/AddLocalVarLoadStoreInstructions;
            0    1     1  scope  Lorg/jruby/ir/IRScope;
    MethodParameters:
       Name  Flags
      scope  

  public boolean invalidate(org.jruby.ir.IRScope);
    descriptor: (Lorg/jruby/ir/IRScope;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
        start local 1 // org.jruby.ir.IRScope scope
         0: .line 85
            aload 0 /* this */
            aload 1 /* scope */
            invokespecial org.jruby.ir.passes.CompilerPass.invalidate:(Lorg/jruby/ir/IRScope;)Z
            pop
         1: .line 86
            aload 1 /* scope */
            aconst_null
            invokevirtual org.jruby.ir.IRScope.putStoreLocalVarPlacementProblem:(Lorg/jruby/ir/dataflow/analyses/StoreLocalVarPlacementProblem;)V
         2: .line 87
            iconst_1
            ireturn
        end local 1 // org.jruby.ir.IRScope scope
        end local 0 // org.jruby.ir.passes.AddLocalVarLoadStoreInstructions this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/jruby/ir/passes/AddLocalVarLoadStoreInstructions;
            0    3     1  scope  Lorg/jruby/ir/IRScope;
    MethodParameters:
       Name  Flags
      scope  
}
SourceFile: "AddLocalVarLoadStoreInstructions.java"