public class org.graalvm.compiler.loop.phases.LoopUnswitchingPhase extends org.graalvm.compiler.loop.phases.ContextlessLoopPhase<org.graalvm.compiler.loop.LoopPolicies>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.loop.phases.LoopUnswitchingPhase
  super_class: org.graalvm.compiler.loop.phases.ContextlessLoopPhase
{
  private static final org.graalvm.compiler.debug.CounterKey UNSWITCHED;
    descriptor: Lorg/graalvm/compiler/debug/CounterKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.compiler.debug.CounterKey UNSWITCH_CANDIDATES;
    descriptor: Lorg/graalvm/compiler/debug/CounterKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.graalvm.compiler.debug.CounterKey UNSWITCH_EARLY_REJECTS;
    descriptor: Lorg/graalvm/compiler/debug/CounterKey;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 41
            ldc "Unswitched"
            invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
            putstatic org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.UNSWITCHED:Lorg/graalvm/compiler/debug/CounterKey;
         1: .line 42
            ldc "UnswitchCandidates"
            invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
            putstatic org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.UNSWITCH_CANDIDATES:Lorg/graalvm/compiler/debug/CounterKey;
         2: .line 43
            ldc "UnswitchEarlyRejects"
            invokestatic org.graalvm.compiler.debug.DebugContext.counter:(Ljava/lang/CharSequence;)Lorg/graalvm/compiler/debug/CounterKey;
            putstatic org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.UNSWITCH_EARLY_REJECTS:Lorg/graalvm/compiler/debug/CounterKey;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.loop.LoopPolicies);
    descriptor: (Lorg/graalvm/compiler/loop/LoopPolicies;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.loop.phases.LoopUnswitchingPhase this
        start local 1 // org.graalvm.compiler.loop.LoopPolicies policies
         0: .line 46
            aload 0 /* this */
            aload 1 /* policies */
            invokespecial org.graalvm.compiler.loop.phases.ContextlessLoopPhase.<init>:(Lorg/graalvm/compiler/loop/LoopPolicies;)V
         1: .line 47
            return
        end local 1 // org.graalvm.compiler.loop.LoopPolicies policies
        end local 0 // org.graalvm.compiler.loop.phases.LoopUnswitchingPhase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/graalvm/compiler/loop/phases/LoopUnswitchingPhase;
            0    2     1  policies  Lorg/graalvm/compiler/loop/LoopPolicies;
    MethodParameters:
          Name  Flags
      policies  

  protected void run(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.loop.phases.LoopUnswitchingPhase this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 51
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 2 /* debug */
        start local 2 // org.graalvm.compiler.debug.DebugContext debug
         1: .line 52
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.hasLoops:()Z
            ifeq 21
         2: .line 55
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            iconst_0
            istore 3 /* unswitched */
        start local 3 // boolean unswitched
         3: .line 56
            new org.graalvm.compiler.loop.LoopsData
            dup
            aload 1 /* graph */
            invokespecial org.graalvm.compiler.loop.LoopsData.<init>:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
            astore 4 /* dataUnswitch */
        start local 4 // org.graalvm.compiler.loop.LoopsData dataUnswitch
         4: .line 57
            aload 4 /* dataUnswitch */
            invokevirtual org.graalvm.compiler.loop.LoopsData.outerFirst:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 19
      StackMap locals: org.graalvm.compiler.loop.phases.LoopUnswitchingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext int org.graalvm.compiler.loop.LoopsData top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.LoopEx
            astore 5 /* loop */
        start local 5 // org.graalvm.compiler.loop.LoopEx loop
         6: .line 58
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.getPolicies:()Lorg/graalvm/compiler/loop/LoopPolicies;
            aload 5 /* loop */
            invokeinterface org.graalvm.compiler.loop.LoopPolicies.shouldTryUnswitch:(Lorg/graalvm/compiler/loop/LoopEx;)Z
            ifeq 18
         7: .line 59
            aload 5 /* loop */
            invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.findUnswitchable:(Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/List;
            astore 7 /* controlSplits */
        start local 7 // java.util.List controlSplits
         8: .line 60
            aload 7 /* controlSplits */
            ifnull 19
         9: .line 61
            getstatic org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.UNSWITCH_CANDIDATES:Lorg/graalvm/compiler/debug/CounterKey;
            aload 2 /* debug */
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
        10: .line 62
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.getPolicies:()Lorg/graalvm/compiler/loop/LoopPolicies;
            aload 5 /* loop */
            aload 7 /* controlSplits */
            invokeinterface org.graalvm.compiler.loop.LoopPolicies.shouldUnswitch:(Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List;)Z
            ifeq 19
        11: .line 63
            aload 2 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 13
        12: .line 64
            aload 5 /* loop */
            aload 7 /* controlSplits */
            invokestatic org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.logUnswitch:(Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List;)V
        13: .line 66
      StackMap locals: org.graalvm.compiler.loop.phases.LoopUnswitchingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext int org.graalvm.compiler.loop.LoopsData org.graalvm.compiler.loop.LoopEx java.util.Iterator java.util.List
      StackMap stack:
            aload 5 /* loop */
            aload 7 /* controlSplits */
            invokestatic org.graalvm.compiler.loop.phases.LoopTransformations.unswitch:(Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List;)V
        14: .line 67
            aload 2 /* debug */
            iconst_4
            aload 1 /* graph */
            ldc "After unswitch %s"
            aload 7 /* controlSplits */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 68
            getstatic org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.UNSWITCHED:Lorg/graalvm/compiler/debug/CounterKey;
            aload 2 /* debug */
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
        16: .line 69
            iconst_1
            istore 3 /* unswitched */
        17: .line 70
            goto 20
        end local 7 // java.util.List controlSplits
        18: .line 74
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.loop.phases.LoopUnswitchingPhase.UNSWITCH_EARLY_REJECTS:Lorg/graalvm/compiler/debug/CounterKey;
            aload 2 /* debug */
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
        end local 5 // org.graalvm.compiler.loop.LoopEx loop
        19: .line 57
      StackMap locals: org.graalvm.compiler.loop.phases.LoopUnswitchingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext int org.graalvm.compiler.loop.LoopsData top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // org.graalvm.compiler.loop.LoopsData dataUnswitch
        20: .line 77
      StackMap locals: org.graalvm.compiler.loop.phases.LoopUnswitchingPhase org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.debug.DebugContext int
      StackMap stack:
            iload 3 /* unswitched */
            ifne 2
        end local 3 // boolean unswitched
        21: .line 79
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.debug.DebugContext debug
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.loop.phases.LoopUnswitchingPhase this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0           this  Lorg/graalvm/compiler/loop/phases/LoopUnswitchingPhase;
            0   22     1          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1   22     2          debug  Lorg/graalvm/compiler/debug/DebugContext;
            3   21     3     unswitched  Z
            4   20     4   dataUnswitch  Lorg/graalvm/compiler/loop/LoopsData;
            6   19     5           loop  Lorg/graalvm/compiler/loop/LoopEx;
            8   18     7  controlSplits  Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;
    MethodParameters:
       Name  Flags
      graph  

  private static void logUnswitch(org.graalvm.compiler.loop.LoopEx, java.util.List<org.graalvm.compiler.nodes.ControlSplitNode>);
    descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.loop.LoopEx loop
        start local 1 // java.util.List controlSplits
         0: .line 82
            new java.lang.StringBuilder
            dup
            ldc "Unswitching "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 83
            aload 2 /* sb */
            aload 0 /* loop */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 84
            aload 1 /* controlSplits */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ControlSplitNode
            astore 3 /* controlSplit */
        start local 3 // org.graalvm.compiler.nodes.ControlSplitNode controlSplit
         4: .line 85
            aload 2 /* sb */
            aload 3 /* controlSplit */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 86
            aload 3 /* controlSplit */
            invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.successors:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 5 /* it */
        start local 5 // java.util.Iterator it
         6: .line 87
            goto 10
         7: .line 88
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List java.lang.StringBuilder org.graalvm.compiler.nodes.ControlSplitNode java.util.Iterator java.util.Iterator
      StackMap stack:
            aload 2 /* sb */
            aload 3 /* controlSplit */
            aload 5 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.AbstractBeginNode
            invokevirtual org.graalvm.compiler.nodes.ControlSplitNode.probability:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            pop
         8: .line 89
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 10
         9: .line 90
            aload 2 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 87
      StackMap locals:
      StackMap stack:
            aload 5 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 93
            aload 2 /* sb */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 5 // java.util.Iterator it
        end local 3 // org.graalvm.compiler.nodes.ControlSplitNode controlSplit
        12: .line 84
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.List java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        13: .line 95
            aload 0 /* loop */
            invokevirtual org.graalvm.compiler.loop.LoopEx.entryPoint:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokevirtual org.graalvm.compiler.nodes.FixedNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            ldc "%s"
            aload 2 /* sb */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 96
            return
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.util.List controlSplits
        end local 0 // org.graalvm.compiler.loop.LoopEx loop
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           loop  Lorg/graalvm/compiler/loop/LoopEx;
            0   15     1  controlSplits  Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;
            1   15     2             sb  Ljava/lang/StringBuilder;
            4   12     3   controlSplit  Lorg/graalvm/compiler/nodes/ControlSplitNode;
            6   12     5             it  Ljava/util/Iterator<Lorg/graalvm/compiler/graph/Node;>;
    Signature: (Lorg/graalvm/compiler/loop/LoopEx;Ljava/util/List<Lorg/graalvm/compiler/nodes/ControlSplitNode;>;)V
    MethodParameters:
               Name  Flags
      loop           
      controlSplits  

  public float codeSizeIncrease();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.phases.LoopUnswitchingPhase this
         0: .line 100
            ldc 10.0
            freturn
        end local 0 // org.graalvm.compiler.loop.phases.LoopUnswitchingPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/loop/phases/LoopUnswitchingPhase;
}
Signature: Lorg/graalvm/compiler/loop/phases/ContextlessLoopPhase<Lorg/graalvm/compiler/loop/LoopPolicies;>;
SourceFile: "LoopUnswitchingPhase.java"