public abstract class org.jruby.ir.dataflow.FlowGraphNode<T extends org.jruby.ir.dataflow.DataFlowProblem<T, U>, U extends org.jruby.ir.dataflow.FlowGraphNode<T, U>>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.jruby.ir.dataflow.FlowGraphNode
  super_class: java.lang.Object
{
  protected final T problem;
    descriptor: Lorg/jruby/ir/dataflow/DataFlowProblem;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: TT;

  protected final org.jruby.ir.representations.BasicBlock basicBlock;
    descriptor: Lorg/jruby/ir/representations/BasicBlock;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final org.jruby.ir.representations.BasicBlock rescuer;
    descriptor: Lorg/jruby/ir/representations/BasicBlock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(T, org.jruby.ir.representations.BasicBlock);
    descriptor: (Lorg/jruby/ir/dataflow/DataFlowProblem;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.FlowGraphNode this
        start local 1 // org.jruby.ir.dataflow.DataFlowProblem problem
        start local 2 // org.jruby.ir.representations.BasicBlock basicBlock
         0: .line 20
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 21
            aload 0 /* this */
            aload 1 /* problem */
            putfield org.jruby.ir.dataflow.FlowGraphNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
         2: .line 22
            aload 0 /* this */
            aload 2 /* basicBlock */
            putfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
         3: .line 25
            aload 0 /* this */
            aload 1 /* problem */
            invokevirtual org.jruby.ir.dataflow.DataFlowProblem.getScope:()Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getCFG:()Lorg/jruby/ir/representations/CFG;
            aload 2 /* basicBlock */
            invokevirtual org.jruby.ir.representations.CFG.getRescuerBBFor:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/representations/BasicBlock;
            putfield org.jruby.ir.dataflow.FlowGraphNode.rescuer:Lorg/jruby/ir/representations/BasicBlock;
         4: .line 26
            return
        end local 2 // org.jruby.ir.representations.BasicBlock basicBlock
        end local 1 // org.jruby.ir.dataflow.DataFlowProblem problem
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;
            0    5     1     problem  TT;
            0    5     2  basicBlock  Lorg/jruby/ir/representations/BasicBlock;
    Signature: (TT;Lorg/jruby/ir/representations/BasicBlock;)V
    MethodParameters:
            Name  Flags
      problem     
      basicBlock  

  public abstract void buildDataFlowVars(org.jruby.ir.instructions.Instr);
    descriptor: (Lorg/jruby/ir/instructions/Instr;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      i     

  public void init();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
         0: .line 37
            return
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;

  public abstract void applyPreMeetHandler();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void compute_MEET(org.jruby.dirgra.Edge, );
    descriptor: (Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/FlowGraphNode;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Lorg/jruby/dirgra/Edge;TU;)V
    MethodParameters:
      Name  Flags
      e     
      pred  

  public void initSolution();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
         0: .line 55
            return
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;

  public abstract void applyTransferFunction(org.jruby.ir.instructions.Instr);
    descriptor: (Lorg/jruby/ir/instructions/Instr;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      i     

  public abstract boolean solutionChanged();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void finalizeSolution();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
         0: .line 70
            return
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;

  public org.jruby.ir.representations.BasicBlock getBB();
    descriptor: ()Lorg/jruby/ir/representations/BasicBlock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
         0: .line 73
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            areturn
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;

  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.dataflow.FlowGraphNode this
         0: .line 80
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            getfield org.jruby.ir.dataflow.DataFlowProblem.scope:Lorg/jruby/ir/IRScope;
            invokevirtual org.jruby.ir.IRScope.getCFG:()Lorg/jruby/ir/representations/CFG;
            areturn
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;

  public void buildDataFlowVars();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
         0: .line 88
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: org.jruby.ir.dataflow.FlowGraphNode top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 1 /* i */
        start local 1 // org.jruby.ir.instructions.Instr i
         2: .line 89
            aload 0 /* this */
            aload 1 /* i */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.buildDataFlowVars:(Lorg/jruby/ir/instructions/Instr;)V
        end local 1 // org.jruby.ir.instructions.Instr i
         3: .line 88
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 91
            return
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;
            2    3     1     i  Lorg/jruby/ir/instructions/Instr;

  private void processDestBB(java.util.List<U>, java.util.BitSet, org.jruby.ir.representations.BasicBlock);
    descriptor: (Ljava/util/List;Ljava/util/BitSet;Lorg/jruby/ir/representations/BasicBlock;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
        start local 1 // java.util.List workList
        start local 2 // java.util.BitSet bbSet
        start local 3 // org.jruby.ir.representations.BasicBlock d
         0: .line 94
            aload 3 /* d */
            invokevirtual org.jruby.ir.representations.BasicBlock.getID:()I
            istore 4 /* id */
        start local 4 // int id
         1: .line 95
            aload 2 /* bbSet */
            iload 4 /* id */
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 4
         2: .line 96
            aload 2 /* bbSet */
            iload 4 /* id */
            invokevirtual java.util.BitSet.set:(I)V
         3: .line 97
            aload 1 /* workList */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            aload 3 /* d */
            invokevirtual org.jruby.ir.dataflow.DataFlowProblem.getFlowGraphNode:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/dataflow/FlowGraphNode;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 99
      StackMap locals: int
      StackMap stack:
            return
        end local 4 // int id
        end local 3 // org.jruby.ir.representations.BasicBlock d
        end local 2 // java.util.BitSet bbSet
        end local 1 // java.util.List workList
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;
            0    5     1  workList  Ljava/util/List<TU;>;
            0    5     2     bbSet  Ljava/util/BitSet;
            0    5     3         d  Lorg/jruby/ir/representations/BasicBlock;
            1    5     4        id  I
    Signature: (Ljava/util/List<TU;>;Ljava/util/BitSet;Lorg/jruby/ir/representations/BasicBlock;)V
    MethodParameters:
          Name  Flags
      workList  
      bbSet     
      d         

  public void computeDataFlowInfo(java.util.List<U>, java.util.BitSet);
    descriptor: (Ljava/util/List;Ljava/util/BitSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
        start local 1 // java.util.List workList
        start local 2 // java.util.BitSet bbSet
         0: .line 102
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            invokevirtual org.jruby.ir.dataflow.DataFlowProblem.getFlowDirection:()Lorg/jruby/ir/dataflow/DataFlowProblem$DF_Direction;
            getstatic org.jruby.ir.dataflow.DataFlowProblem$DF_Direction.BIDIRECTIONAL:Lorg/jruby/ir/dataflow/DataFlowProblem$DF_Direction;
            if_acmpne 2
         1: .line 103
            new java.lang.RuntimeException
            dup
            ldc "Bidirectional data flow computation not implemented yet!"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 107
      StackMap locals:
      StackMap stack:
            aload 2 /* bbSet */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.getID:()I
            invokevirtual java.util.BitSet.clear:(I)V
         3: .line 111
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.applyPreMeetHandler:()V
         4: .line 113
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            invokevirtual org.jruby.ir.dataflow.DataFlowProblem.getFlowDirection:()Lorg/jruby/ir/dataflow/DataFlowProblem$DF_Direction;
            getstatic org.jruby.ir.dataflow.DataFlowProblem$DF_Direction.FORWARD:Lorg/jruby/ir/dataflow/DataFlowProblem$DF_Direction;
            if_acmpne 7
         5: .line 114
            aload 0 /* this */
            aload 1 /* workList */
            aload 2 /* bbSet */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.computeDataFlowInfoForward:(Ljava/util/List;Ljava/util/BitSet;)V
         6: .line 115
            goto 8
         7: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* workList */
            aload 2 /* bbSet */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.computeDataFlowInfoBackward:(Ljava/util/List;Ljava/util/BitSet;)V
         8: .line 118
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.BitSet bbSet
        end local 1 // java.util.List workList
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;
            0    9     1  workList  Ljava/util/List<TU;>;
            0    9     2     bbSet  Ljava/util/BitSet;
    Signature: (Ljava/util/List<TU;>;Ljava/util/BitSet;)V
    MethodParameters:
          Name  Flags
      workList  
      bbSet     

  public void computeDataFlowInfoBackward(java.util.List<U>, java.util.BitSet);
    descriptor: (Ljava/util/List;Ljava/util/BitSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
        start local 1 // java.util.List workList
        start local 2 // java.util.BitSet bbSet
         0: .line 121
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.getCFG:()Lorg/jruby/ir/representations/CFG;
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.CFG.getOutgoingEdges:(Lorg/jruby/ir/representations/BasicBlock;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: org.jruby.ir.dataflow.FlowGraphNode java.util.List java.util.BitSet top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.dirgra.Edge
            astore 3 /* e */
        start local 3 // org.jruby.dirgra.Edge e
         2: .line 122
            aload 0 /* this */
            aload 3 /* e */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            aload 3 /* e */
            invokevirtual org.jruby.dirgra.Edge.getDestination:()Lorg/jruby/dirgra/Vertex;
            invokevirtual org.jruby.dirgra.Vertex.getData:()Lorg/jruby/dirgra/ExplicitVertexID;
            checkcast org.jruby.ir.representations.BasicBlock
            invokevirtual org.jruby.ir.dataflow.DataFlowProblem.getFlowGraphNode:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/dataflow/FlowGraphNode;
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.compute_MEET:(Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/FlowGraphNode;)V
        end local 3 // org.jruby.dirgra.Edge e
         3: .line 121
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 125
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.initSolution:()V
         5: .line 128
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            astore 3 /* instrs */
        start local 3 // java.util.List instrs
         6: .line 129
            aload 3 /* instrs */
            aload 3 /* instrs */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
            astore 4 /* it */
        start local 4 // java.util.ListIterator it
         7: .line 130
            goto 10
         8: .line 131
      StackMap locals: org.jruby.ir.dataflow.FlowGraphNode java.util.List java.util.BitSet java.util.List java.util.ListIterator
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
            checkcast org.jruby.ir.instructions.Instr
            astore 5 /* i */
        start local 5 // org.jruby.ir.instructions.Instr i
         9: .line 133
            aload 0 /* this */
            aload 5 /* i */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.applyTransferFunction:(Lorg/jruby/ir/instructions/Instr;)V
        end local 5 // org.jruby.ir.instructions.Instr i
        10: .line 130
      StackMap locals:
      StackMap stack:
            aload 4 /* it */
            invokeinterface java.util.ListIterator.hasPrevious:()Z
            ifne 8
        11: .line 138
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.solutionChanged:()Z
            ifeq 16
        12: .line 139
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.getCFG:()Lorg/jruby/ir/representations/CFG;
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.CFG.getIncomingSources:(Lorg/jruby/ir/representations/BasicBlock;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: org.jruby.ir.dataflow.FlowGraphNode java.util.List java.util.BitSet java.util.List java.util.ListIterator top java.util.Iterator
      StackMap stack:
        13: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.ir.representations.BasicBlock
            astore 5 /* b */
        start local 5 // org.jruby.ir.representations.BasicBlock b
        14: .line 140
            aload 0 /* this */
            aload 1 /* workList */
            aload 2 /* bbSet */
            aload 5 /* b */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.processDestBB:(Ljava/util/List;Ljava/util/BitSet;Lorg/jruby/ir/representations/BasicBlock;)V
        end local 5 // org.jruby.ir.representations.BasicBlock b
        15: .line 139
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        16: .line 144
      StackMap locals: org.jruby.ir.dataflow.FlowGraphNode java.util.List java.util.BitSet java.util.List java.util.ListIterator
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.finalizeSolution:()V
        17: .line 145
            return
        end local 4 // java.util.ListIterator it
        end local 3 // java.util.List instrs
        end local 2 // java.util.BitSet bbSet
        end local 1 // java.util.List workList
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;
            0   18     1  workList  Ljava/util/List<TU;>;
            0   18     2     bbSet  Ljava/util/BitSet;
            2    3     3         e  Lorg/jruby/dirgra/Edge<Lorg/jruby/ir/representations/BasicBlock;>;
            6   18     3    instrs  Ljava/util/List<Lorg/jruby/ir/instructions/Instr;>;
            7   18     4        it  Ljava/util/ListIterator<Lorg/jruby/ir/instructions/Instr;>;
            9   10     5         i  Lorg/jruby/ir/instructions/Instr;
           14   15     5         b  Lorg/jruby/ir/representations/BasicBlock;
    Signature: (Ljava/util/List<TU;>;Ljava/util/BitSet;)V
    MethodParameters:
          Name  Flags
      workList  
      bbSet     

  public void computeDataFlowInfoForward(java.util.List<U>, java.util.BitSet);
    descriptor: (Ljava/util/List;Ljava/util/BitSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
        start local 1 // java.util.List workList
        start local 2 // java.util.BitSet bbSet
         0: .line 148
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.getCFG:()Lorg/jruby/ir/representations/CFG;
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.CFG.getIncomingEdges:(Lorg/jruby/ir/representations/BasicBlock;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: org.jruby.ir.dataflow.FlowGraphNode java.util.List java.util.BitSet top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.dirgra.Edge
            astore 3 /* e */
        start local 3 // org.jruby.dirgra.Edge e
         2: .line 149
            aload 0 /* this */
            aload 3 /* e */
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            aload 3 /* e */
            invokevirtual org.jruby.dirgra.Edge.getSource:()Lorg/jruby/dirgra/Vertex;
            invokevirtual org.jruby.dirgra.Vertex.getData:()Lorg/jruby/dirgra/ExplicitVertexID;
            checkcast org.jruby.ir.representations.BasicBlock
            invokevirtual org.jruby.ir.dataflow.DataFlowProblem.getFlowGraphNode:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/dataflow/FlowGraphNode;
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.compute_MEET:(Lorg/jruby/dirgra/Edge;Lorg/jruby/ir/dataflow/FlowGraphNode;)V
        end local 3 // org.jruby.dirgra.Edge e
         3: .line 148
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 152
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.initSolution:()V
         5: .line 155
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.BasicBlock.getInstrs:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals:
      StackMap stack:
         6: 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
         7: .line 157
            aload 0 /* this */
            aload 3 /* i */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.applyTransferFunction:(Lorg/jruby/ir/instructions/Instr;)V
        end local 3 // org.jruby.ir.instructions.Instr i
         8: .line 155
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 162
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.solutionChanged:()Z
            ifeq 14
        10: .line 163
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.getCFG:()Lorg/jruby/ir/representations/CFG;
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.basicBlock:Lorg/jruby/ir/representations/BasicBlock;
            invokevirtual org.jruby.ir.representations.CFG.getOutgoingDestinations:(Lorg/jruby/ir/representations/BasicBlock;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals:
      StackMap stack:
        11: 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
        12: .line 164
            aload 0 /* this */
            aload 1 /* workList */
            aload 2 /* bbSet */
            aload 3 /* b */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.processDestBB:(Ljava/util/List;Ljava/util/BitSet;Lorg/jruby/ir/representations/BasicBlock;)V
        end local 3 // org.jruby.ir.representations.BasicBlock b
        13: .line 163
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 168
      StackMap locals: org.jruby.ir.dataflow.FlowGraphNode java.util.List java.util.BitSet
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.finalizeSolution:()V
        15: .line 169
            return
        end local 2 // java.util.BitSet bbSet
        end local 1 // java.util.List workList
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;
            0   16     1  workList  Ljava/util/List<TU;>;
            0   16     2     bbSet  Ljava/util/BitSet;
            2    3     3         e  Lorg/jruby/dirgra/Edge<Lorg/jruby/ir/representations/BasicBlock;>;
            7    8     3         i  Lorg/jruby/ir/instructions/Instr;
           12   13     3         b  Lorg/jruby/ir/representations/BasicBlock;
    Signature: (Ljava/util/List<TU;>;Ljava/util/BitSet;)V
    MethodParameters:
          Name  Flags
      workList  
      bbSet     

  public boolean hasExceptionsRescued();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
         0: .line 172
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.rescuer:Lorg/jruby/ir/representations/BasicBlock;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;

  public U getExceptionTargetNode();
    descriptor: ()Lorg/jruby/ir/dataflow/FlowGraphNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ir.dataflow.FlowGraphNode this
         0: .line 177
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.problem:Lorg/jruby/ir/dataflow/DataFlowProblem;
            aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.rescuer:Lorg/jruby/ir/representations/BasicBlock;
            ifnonnull 1
            aload 0 /* this */
            invokevirtual org.jruby.ir.dataflow.FlowGraphNode.getCFG:()Lorg/jruby/ir/representations/CFG;
            invokevirtual org.jruby.ir.representations.CFG.getExitBB:()Lorg/jruby/ir/representations/BasicBlock;
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.ir.dataflow.DataFlowProblem
         1: aload 0 /* this */
            getfield org.jruby.ir.dataflow.FlowGraphNode.rescuer:Lorg/jruby/ir/representations/BasicBlock;
      StackMap locals: org.jruby.ir.dataflow.FlowGraphNode
      StackMap stack: org.jruby.ir.dataflow.DataFlowProblem org.jruby.ir.representations.BasicBlock
         2: invokevirtual org.jruby.ir.dataflow.DataFlowProblem.getFlowGraphNode:(Lorg/jruby/ir/representations/BasicBlock;)Lorg/jruby/ir/dataflow/FlowGraphNode;
            areturn
        end local 0 // org.jruby.ir.dataflow.FlowGraphNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;
    Signature: ()TU;
}
Signature: <T:Lorg/jruby/ir/dataflow/DataFlowProblem<TT;TU;>;U:Lorg/jruby/ir/dataflow/FlowGraphNode<TT;TU;>;>Ljava/lang/Object;
SourceFile: "FlowGraphNode.java"
InnerClasses:
  public final DF_Direction = org.jruby.ir.dataflow.DataFlowProblem$DF_Direction of org.jruby.ir.dataflow.DataFlowProblem