final class org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance extends org.graalvm.compiler.phases.Phase
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance
  super_class: org.graalvm.compiler.phases.Phase
{
  private final org.graalvm.compiler.graph.Graph$Mark newNodesMark;
    descriptor: Lorg/graalvm/compiler/graph/Graph$Mark;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.nodes.spi.CoreProviders context;
    descriptor: Lorg/graalvm/compiler/nodes/spi/CoreProviders;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Iterable<? extends org.graalvm.compiler.graph.Node> initWorkingSet;
    descriptor: Ljava/lang/Iterable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Iterable<+Lorg/graalvm/compiler/graph/Node;>;

  private org.graalvm.compiler.graph.NodeWorkList workList;
    descriptor: Lorg/graalvm/compiler/graph/NodeWorkList;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance$Tool tool;
    descriptor: Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance$Tool;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.debug.DebugContext debug;
    descriptor: Lorg/graalvm/compiler/debug/DebugContext;
    flags: (0x0002) ACC_PRIVATE

  final org.graalvm.compiler.phases.common.CanonicalizerPhase this$0;
    descriptor: Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 216
            ldc Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(org.graalvm.compiler.phases.common.CanonicalizerPhase, org.graalvm.compiler.nodes.spi.CoreProviders);
    descriptor: (Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/CoreProviders;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 2 // org.graalvm.compiler.nodes.spi.CoreProviders context
         0: .line 227
            aload 0 /* this */
            aload 1
            aload 2 /* context */
            aconst_null
            aconst_null
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph$Mark;)V
         1: .line 228
            return
        end local 2 // org.graalvm.compiler.nodes.spi.CoreProviders context
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0    2     2  context  Lorg/graalvm/compiler/nodes/spi/CoreProviders;
    MethodParameters:
         Name  Flags
      this$0   final
      context  

  private void <init>(org.graalvm.compiler.nodes.spi.CoreProviders, java.lang.Iterable<? extends org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Ljava/lang/Iterable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 2 // org.graalvm.compiler.nodes.spi.CoreProviders context
        start local 3 // java.lang.Iterable workingSet
         0: .line 231
            aload 0 /* this */
            aload 1
            aload 2 /* context */
            aload 3 /* workingSet */
            aconst_null
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph$Mark;)V
         1: .line 232
            return
        end local 3 // java.lang.Iterable workingSet
        end local 2 // org.graalvm.compiler.nodes.spi.CoreProviders context
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0    2     2     context  Lorg/graalvm/compiler/nodes/spi/CoreProviders;
            0    2     3  workingSet  Ljava/lang/Iterable<+Lorg/graalvm/compiler/graph/Node;>;
    Signature: (Lorg/graalvm/compiler/nodes/spi/CoreProviders;Ljava/lang/Iterable<+Lorg/graalvm/compiler/graph/Node;>;)V
    MethodParameters:
            Name  Flags
      this$0      final
      context     
      workingSet  

  private void <init>(org.graalvm.compiler.phases.common.CanonicalizerPhase, org.graalvm.compiler.nodes.spi.CoreProviders, org.graalvm.compiler.graph.Graph$Mark);
    descriptor: (Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Lorg/graalvm/compiler/graph/Graph$Mark;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 2 // org.graalvm.compiler.nodes.spi.CoreProviders context
        start local 3 // org.graalvm.compiler.graph.Graph$Mark newNodesMark
         0: .line 235
            aload 0 /* this */
            aload 1
            aload 2 /* context */
            aconst_null
            aload 3 /* newNodesMark */
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph$Mark;)V
         1: .line 236
            return
        end local 3 // org.graalvm.compiler.graph.Graph$Mark newNodesMark
        end local 2 // org.graalvm.compiler.nodes.spi.CoreProviders context
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0    2     2       context  Lorg/graalvm/compiler/nodes/spi/CoreProviders;
            0    2     3  newNodesMark  Lorg/graalvm/compiler/graph/Graph$Mark;
    MethodParameters:
              Name  Flags
      this$0        final
      context       
      newNodesMark  

  private void <init>(org.graalvm.compiler.nodes.spi.CoreProviders, java.lang.Iterable<? extends org.graalvm.compiler.graph.Node>, org.graalvm.compiler.graph.Graph$Mark);
    descriptor: (Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/CoreProviders;Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph$Mark;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 2 // org.graalvm.compiler.nodes.spi.CoreProviders context
        start local 3 // java.lang.Iterable workingSet
        start local 4 // org.graalvm.compiler.graph.Graph$Mark newNodesMark
         0: .line 238
            aload 0 /* this */
            aload 1
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.this$0:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.Phase.<init>:()V
         1: .line 239
            aload 0 /* this */
            aload 4 /* newNodesMark */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.newNodesMark:Lorg/graalvm/compiler/graph/Graph$Mark;
         2: .line 240
            aload 0 /* this */
            aload 2 /* context */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.context:Lorg/graalvm/compiler/nodes/spi/CoreProviders;
         3: .line 241
            aload 0 /* this */
            aload 3 /* workingSet */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.initWorkingSet:Ljava/lang/Iterable;
         4: .line 242
            return
        end local 4 // org.graalvm.compiler.graph.Graph$Mark newNodesMark
        end local 3 // java.lang.Iterable workingSet
        end local 2 // org.graalvm.compiler.nodes.spi.CoreProviders context
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0    5     2       context  Lorg/graalvm/compiler/nodes/spi/CoreProviders;
            0    5     3    workingSet  Ljava/lang/Iterable<+Lorg/graalvm/compiler/graph/Node;>;
            0    5     4  newNodesMark  Lorg/graalvm/compiler/graph/Graph$Mark;
    Signature: (Lorg/graalvm/compiler/nodes/spi/CoreProviders;Ljava/lang/Iterable<+Lorg/graalvm/compiler/graph/Node;>;Lorg/graalvm/compiler/graph/Graph$Mark;)V
    MethodParameters:
              Name  Flags
      this$0        final
      context       
      workingSet    
      newNodesMark  

  public boolean checkContract();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
         0: .line 246
            iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;

  protected void run(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 251
            aload 0 /* this */
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
         1: .line 252
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.newNodesMark:Lorg/graalvm/compiler/graph/Graph$Mark;
            ifnull 2
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.newNodesMark:Lorg/graalvm/compiler/graph/Graph$Mark;
            invokevirtual org.graalvm.compiler.graph.Graph$Mark.isStart:()Z
            ifne 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* wholeGraph */
        start local 2 // boolean wholeGraph
         4: .line 253
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.initWorkingSet:Ljava/lang/Iterable;
            ifnonnull 7
         5: .line 254
            aload 0 /* this */
            aload 1 /* graph */
            iload 2 /* wholeGraph */
            bipush 10
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createIterativeNodeWorkList:(ZI)Lorg/graalvm/compiler/graph/NodeWorkList;
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.workList:Lorg/graalvm/compiler/graph/NodeWorkList;
         6: .line 255
            goto 9
         7: .line 256
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* graph */
            iconst_0
            bipush 10
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.createIterativeNodeWorkList:(ZI)Lorg/graalvm/compiler/graph/NodeWorkList;
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.workList:Lorg/graalvm/compiler/graph/NodeWorkList;
         8: .line 257
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.workList:Lorg/graalvm/compiler/graph/NodeWorkList;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.initWorkingSet:Ljava/lang/Iterable;
            invokevirtual org.graalvm.compiler.graph.NodeWorkList.addAll:(Ljava/lang/Iterable;)V
         9: .line 259
      StackMap locals:
      StackMap stack:
            iload 2 /* wholeGraph */
            ifne 11
        10: .line 260
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.workList:Lorg/graalvm/compiler/graph/NodeWorkList;
            aload 1 /* graph */
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.newNodesMark:Lorg/graalvm/compiler/graph/Graph$Mark;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNewNodes:(Lorg/graalvm/compiler/graph/Graph$Mark;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokevirtual org.graalvm.compiler.graph.NodeWorkList.addAll:(Ljava/lang/Iterable;)V
        11: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance$Tool
            dup
            aload 0 /* this */
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getAssumptions:()Ljdk/vm/ci/meta/Assumptions;
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance$Tool.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;Ljdk/vm/ci/meta/Assumptions;Lorg/graalvm/compiler/options/OptionValues;)V
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tool:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance$Tool;
        12: .line 264
            aload 0 /* this */
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.processWorkSet:(Lorg/graalvm/compiler/nodes/StructuredGraph;)I
            pop
        13: .line 265
            return
        end local 2 // boolean wholeGraph
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   14     1       graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            4   14     2  wholeGraph  Z
    MethodParameters:
       Name  Flags
      graph  

  private int processWorkSet(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 269
            iconst_0
            istore 2 /* sum */
        start local 2 // int sum
         1: .line 270
            new org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance$1
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance$1.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;)V
            astore 3 /* listener */
        start local 3 // org.graalvm.compiler.graph.Graph$NodeEventListener listener
         2: .line 300
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: aload 1 /* graph */
            aload 3 /* listener */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeEvents:(Lorg/graalvm/compiler/graph/Graph$NodeEventListener;)Lorg/graalvm/compiler/graph/Graph$NodeEventScope;
            astore 6 /* nes */
        start local 6 // org.graalvm.compiler.graph.Graph$NodeEventScope nes
         4: .line 301
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.workList:Lorg/graalvm/compiler/graph/NodeWorkList;
            invokevirtual org.graalvm.compiler.graph.NodeWorkList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 10
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.nodes.StructuredGraph int org.graalvm.compiler.graph.Graph$NodeEventListener java.lang.Throwable java.lang.Throwable org.graalvm.compiler.graph.Graph$NodeEventScope top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 7 /* n */
        start local 7 // org.graalvm.compiler.graph.Node n
         6: .line 302
            aload 0 /* this */
            aload 7 /* n */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.processNode:(Lorg/graalvm/compiler/graph/Node;)Z
            istore 9 /* changed */
        start local 9 // boolean changed
         7: .line 303
            iload 9 /* changed */
            ifeq 9
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            iconst_4
            invokevirtual org.graalvm.compiler.debug.DebugContext.isDumpEnabled:(I)Z
            ifeq 9
         8: .line 304
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            iconst_4
            aload 1 /* graph */
            ldc "CanonicalizerPhase %s"
            aload 7 /* n */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 306
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.nodes.StructuredGraph int org.graalvm.compiler.graph.Graph$NodeEventListener java.lang.Throwable java.lang.Throwable org.graalvm.compiler.graph.Graph$NodeEventScope org.graalvm.compiler.graph.Node java.util.Iterator int
      StackMap stack:
            iinc 2 /* sum */ 1
        end local 9 // boolean changed
        end local 7 // org.graalvm.compiler.graph.Node n
        10: .line 301
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.nodes.StructuredGraph int org.graalvm.compiler.graph.Graph$NodeEventListener java.lang.Throwable java.lang.Throwable org.graalvm.compiler.graph.Graph$NodeEventScope top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 308
            aload 6 /* nes */
            ifnull 17
            aload 6 /* nes */
            invokevirtual org.graalvm.compiler.graph.Graph$NodeEventScope.close:()V
            goto 17
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.nodes.StructuredGraph int org.graalvm.compiler.graph.Graph$NodeEventListener java.lang.Throwable java.lang.Throwable org.graalvm.compiler.graph.Graph$NodeEventScope
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 6 /* nes */
            ifnull 13
            aload 6 /* nes */
            invokevirtual org.graalvm.compiler.graph.Graph$NodeEventScope.close:()V
        end local 6 // org.graalvm.compiler.graph.Graph$NodeEventScope nes
      StackMap locals:
      StackMap stack:
        13: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 5
            aload 4
            ifnonnull 15
            aload 5
            astore 4
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4
            aload 5
            if_acmpeq 16
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 4
            athrow
        17: .line 309
      StackMap locals:
      StackMap stack:
            iload 2 /* sum */
            ireturn
        end local 3 // org.graalvm.compiler.graph.Graph$NodeEventListener listener
        end local 2 // int sum
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   18     1     graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1   18     2       sum  I
            2   18     3  listener  Lorg/graalvm/compiler/graph/Graph$NodeEventListener;
            4   13     6       nes  Lorg/graalvm/compiler/graph/Graph$NodeEventScope;
            6   10     7         n  Lorg/graalvm/compiler/graph/Node;
            7   10     9   changed  Z
      Exception table:
        from    to  target  type
           4    11      12  any
           3    14      14  any
    MethodParameters:
       Name  Flags
      graph  

  private boolean processNode(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 1 // org.graalvm.compiler.graph.Node node
         0: .line 316
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifne 2
         1: .line 317
            iconst_0
            ireturn
         2: .line 319
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase.COUNTER_PROCESSED_NODES:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         3: .line 320
            aload 1 /* node */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 5
         4: .line 321
            iconst_1
            ireturn
         5: .line 323
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.getNodeClass:()Lorg/graalvm/compiler/graph/NodeClass;
            astore 2 /* nodeClass */
        start local 2 // org.graalvm.compiler.graph.NodeClass nodeClass
         6: .line 324
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.graph:()Lorg/graalvm/compiler/graph/Graph;
            checkcast org.graalvm.compiler.nodes.StructuredGraph
            astore 3 /* graph */
        start local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
         7: .line 325
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tryCanonicalize:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeClass;)Z
            ifeq 9
         8: .line 326
            iconst_1
            ireturn
         9: .line 328
      StackMap locals: org.graalvm.compiler.graph.NodeClass org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.this$0:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase.features:Ljava/util/EnumSet;
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$CanonicalizerFeature.GVN:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CanonicalizerFeature;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 11
            aload 0 /* this */
            aload 1 /* node */
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tryGlobalValueNumbering:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeClass;)Z
            ifeq 11
        10: .line 329
            iconst_1
            ireturn
        11: .line 331
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 25
        12: .line 332
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 4 /* valueNode */
        start local 4 // org.graalvm.compiler.nodes.ValueNode valueNode
        13: .line 333
            aload 0 /* this */
            aload 4 /* valueNode */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tryInferStamp:(Lorg/graalvm/compiler/nodes/ValueNode;)Z
            istore 5 /* improvedStamp */
        start local 5 // boolean improvedStamp
        14: .line 334
            aload 4 /* valueNode */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.asConstant:()Ljdk/vm/ci/meta/Constant;
            astore 6 /* constant */
        start local 6 // jdk.vm.ci.meta.Constant constant
        15: .line 335
            aload 6 /* constant */
            ifnull 21
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifne 21
        16: .line 336
            aload 4 /* valueNode */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 6 /* constant */
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.context:Lorg/graalvm/compiler/nodes/spi/CoreProviders;
            invokeinterface org.graalvm.compiler.nodes.spi.CoreProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 3 /* graph */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 7 /* stampConstant */
        start local 7 // org.graalvm.compiler.nodes.ConstantNode stampConstant
        17: .line 337
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Canonicalizer: constant stamp replaces %1s with %1s"
            aload 4 /* valueNode */
            aload 7 /* stampConstant */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        18: .line 338
            aload 4 /* valueNode */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Value:Lorg/graalvm/compiler/nodeinfo/InputType;
            aload 7 /* stampConstant */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.replaceAtUsages:(Lorg/graalvm/compiler/nodeinfo/InputType;Lorg/graalvm/compiler/graph/Node;)V
        19: .line 339
            aload 4 /* valueNode */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
            pop
        20: .line 340
            iconst_1
            ireturn
        end local 7 // org.graalvm.compiler.nodes.ConstantNode stampConstant
        21: .line 341
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int jdk.vm.ci.meta.Constant
      StackMap stack:
            iload 5 /* improvedStamp */
            ifeq 25
        22: .line 343
            aload 0 /* this */
            aload 4 /* valueNode */
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tryCanonicalize:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeClass;)Z
            ifeq 24
        23: .line 344
            iconst_1
            ireturn
        24: .line 346
      StackMap locals:
      StackMap stack:
            aload 4 /* valueNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.workList:Lorg/graalvm/compiler/graph/NodeWorkList;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Lorg/graalvm/compiler/graph/NodeWorkList;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/graalvm/compiler/graph/NodeWorkList.add(Lorg/graalvm/compiler/graph/Node;)V (5)
                  (Lorg/graalvm/compiler/graph/Node;)V
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.forEach:(Ljava/util/function/Consumer;)V
        end local 6 // jdk.vm.ci.meta.Constant constant
        end local 5 // boolean improvedStamp
        end local 4 // org.graalvm.compiler.nodes.ValueNode valueNode
        25: .line 349
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 2 // org.graalvm.compiler.graph.NodeClass nodeClass
        end local 1 // org.graalvm.compiler.graph.Node node
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   26     1           node  Lorg/graalvm/compiler/graph/Node;
            6   26     2      nodeClass  Lorg/graalvm/compiler/graph/NodeClass<*>;
            7   26     3          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           13   25     4      valueNode  Lorg/graalvm/compiler/nodes/ValueNode;
           14   25     5  improvedStamp  Z
           15   25     6       constant  Ljdk/vm/ci/meta/Constant;
           17   21     7  stampConstant  Lorg/graalvm/compiler/nodes/ConstantNode;
    MethodParameters:
      Name  Flags
      node  

  public boolean tryGlobalValueNumbering(org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.NodeClass<?>);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeClass;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 1 // org.graalvm.compiler.graph.Node node
        start local 2 // org.graalvm.compiler.graph.NodeClass nodeClass
         0: .line 353
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.valueNumberable:()Z
            ifeq 9
         1: .line 354
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.graph:()Lorg/graalvm/compiler/graph/Graph;
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Graph.findDuplicate:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            astore 3 /* newNode */
        start local 3 // org.graalvm.compiler.graph.Node newNode
         2: .line 355
            aload 3 /* newNode */
            ifnull 9
         3: .line 356
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 5
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.FixedNode
            ifne 4
            aload 3 /* newNode */
            instanceof org.graalvm.compiler.nodes.FixedNode
            ifeq 5
      StackMap locals: org.graalvm.compiler.graph.Node
      StackMap stack:
         4: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            aload 3 /* newNode */
            invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsagesAndDelete:(Lorg/graalvm/compiler/graph/Node;)V
         6: .line 358
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase.COUNTER_GLOBAL_VALUE_NUMBERING_HITS:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         7: .line 359
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "GVN applied and new node is %1s"
            aload 3 /* newNode */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 360
            iconst_1
            ireturn
        end local 3 // org.graalvm.compiler.graph.Node newNode
         9: .line 363
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // org.graalvm.compiler.graph.NodeClass nodeClass
        end local 1 // org.graalvm.compiler.graph.Node node
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   10     1       node  Lorg/graalvm/compiler/graph/Node;
            0   10     2  nodeClass  Lorg/graalvm/compiler/graph/NodeClass<*>;
            2    9     3    newNode  Lorg/graalvm/compiler/graph/Node;
    Signature: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeClass<*>;)Z
    MethodParameters:
           Name  Flags
      node       
      nodeClass  

  private java.lang.AutoCloseable getCanonicalizeableContractAssertion(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Ljava/lang/AutoCloseable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 1 // org.graalvm.compiler.graph.Node node
         0: .line 367
            iconst_0
            istore 2 /* needsAssertion */
        start local 2 // boolean needsAssertion
         1: .line 368
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 2
            iconst_1
            dup
            istore 2 /* needsAssertion */
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 369
      StackMap locals: int
      StackMap stack:
            iload 2 /* needsAssertion */
            ifeq 5
         3: .line 370
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.graph:()Lorg/graalvm/compiler/graph/Graph;
            invokevirtual org.graalvm.compiler.graph.Graph.getMark:()Lorg/graalvm/compiler/graph/Graph$Mark;
            astore 3 /* mark */
        start local 3 // org.graalvm.compiler.graph.Graph$Mark mark
         4: .line 371
            aload 3 /* mark */
            aload 1 /* node */
            invokedynamic close(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)Ljava/lang/AutoCloseable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/graalvm/compiler/phases/common/CanonicalizerPhase$Instance.lambda$1(Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)V (6)
                  ()V
            areturn
        end local 3 // org.graalvm.compiler.graph.Graph$Mark mark
         5: .line 376
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean needsAssertion
        end local 1 // org.graalvm.compiler.graph.Node node
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0    6     1            node  Lorg/graalvm/compiler/graph/Node;
            1    6     2  needsAssertion  Z
            4    5     3            mark  Lorg/graalvm/compiler/graph/Graph$Mark;
    MethodParameters:
      Name  Flags
      node  

  public boolean tryCanonicalize(org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.NodeClass<?>);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeClass;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 1 // org.graalvm.compiler.graph.Node node
        start local 2 // org.graalvm.compiler.graph.NodeClass nodeClass
         0: .line 382
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.withNodeSourcePosition:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 5 /* position */
        start local 5 // org.graalvm.compiler.debug.DebugCloseable position
         2: aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.withContext:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 6 /* scope */
        start local 6 // org.graalvm.compiler.debug.DebugContext$Scope scope
         3: .line 383
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isCanonicalizable:()Z
            ifeq 26
         4: .line 384
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase.COUNTER_CANONICALIZATION_CONSIDERED_NODES:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         5: .line 385
            aload 1 /* node */
            astore 7 /* canonical */
        start local 7 // org.graalvm.compiler.graph.Node canonical
         6: .line 386
            aconst_null
            astore 8
            aconst_null
            astore 9
         7: aload 0 /* this */
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.getCanonicalizeableContractAssertion:(Lorg/graalvm/compiler/graph/Node;)Ljava/lang/AutoCloseable;
            astore 10 /* verify */
        start local 10 // java.lang.AutoCloseable verify
         8: .line 387
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.this$0:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase.customCanonicalization:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CustomCanonicalization;
            ifnull 10
         9: .line 388
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.this$0:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase.customCanonicalization:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CustomCanonicalization;
            aload 1 /* node */
            invokeinterface org.graalvm.compiler.phases.common.CanonicalizerPhase$CustomCanonicalization.canonicalize:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            astore 7 /* canonical */
        10: .line 390
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.NodeClass java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.graph.Node java.lang.Throwable java.lang.Throwable java.lang.AutoCloseable
      StackMap stack:
            aload 7 /* canonical */
            aload 1 /* node */
            if_acmpne 14
        11: .line 391
            aload 1 /* node */
            checkcast org.graalvm.compiler.graph.spi.Canonicalizable
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tool:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance$Tool;
            invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/graph/Node;
            astore 7 /* canonical */
        12: .line 392
            aload 7 /* canonical */
            aload 1 /* node */
            if_acmpne 14
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isCommutative:()Z
            ifeq 14
        13: .line 393
            aload 1 /* node */
            checkcast org.graalvm.compiler.graph.spi.Canonicalizable$BinaryCommutative
            invokeinterface org.graalvm.compiler.graph.spi.Canonicalizable$BinaryCommutative.maybeCommuteInputs:()Lorg/graalvm/compiler/graph/Node;
            astore 7 /* canonical */
        14: .line 396
      StackMap locals:
      StackMap stack:
            aload 10 /* verify */
            ifnull 22
            aload 10 /* verify */
            invokeinterface java.lang.AutoCloseable.close:()V
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 8
            aload 10 /* verify */
            ifnull 16
            aload 10 /* verify */
            invokeinterface java.lang.AutoCloseable.close:()V
        end local 10 // java.lang.AutoCloseable verify
      StackMap locals:
      StackMap stack:
        16: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 9
            aload 8
            ifnonnull 18
            aload 9
            astore 8
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 8
            aload 9
            if_acmpeq 19
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        19: aload 8
            athrow
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.NodeClass java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.graph.Node
      StackMap stack: java.lang.Throwable
        20: astore 8 /* e */
        start local 8 // java.lang.Throwable e
        21: .line 397
            new org.graalvm.compiler.graph.GraalGraphError
            dup
            aload 8 /* e */
            invokespecial org.graalvm.compiler.graph.GraalGraphError.<init>:(Ljava/lang/Throwable;)V
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.GraalGraphError.addContext:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/GraalGraphError;
            athrow
        end local 8 // java.lang.Throwable e
        22: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            aload 7 /* canonical */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.performReplacement:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 26
        23: .line 419
            aload 6 /* scope */
            ifnull 24
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack:
        24: aload 5 /* position */
            ifnull 25
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        25: .line 400
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // org.graalvm.compiler.graph.Node canonical
        26: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.this$0:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase.features:Ljava/util/EnumSet;
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$CanonicalizerFeature.CFG_SIMPLIFICATION:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CanonicalizerFeature;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 39
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isSimplifiable:()Z
            ifeq 39
        27: .line 405
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            iconst_3
            ldc "Canonicalizer: simplifying %s"
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;)V
        28: .line 406
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase.COUNTER_SIMPLIFICATION_CONSIDERED_NODES:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
        29: .line 407
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.this$0:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase.customSimplification:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CustomSimplification;
            ifnull 31
        30: .line 408
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.this$0:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase.customSimplification:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CustomSimplification;
            aload 1 /* node */
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tool:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance$Tool;
            invokeinterface org.graalvm.compiler.phases.common.CanonicalizerPhase$CustomSimplification.simplify:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
        31: .line 410
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifeq 35
        32: .line 411
            aload 1 /* node */
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tool:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance$Tool;
            invokevirtual org.graalvm.compiler.graph.Node.simplify:(Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
        33: .line 412
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isDeleted:()Z
            ifeq 35
        34: .line 413
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Canonicalizer: simplified %s"
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        35: .line 416
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isDeleted:()Z
        36: .line 419
            aload 6 /* scope */
            ifnull 37
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack: int
        37: aload 5 /* position */
            ifnull 38
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        38: .line 416
      StackMap locals:
      StackMap stack: int
            ireturn
        39: .line 419
      StackMap locals:
      StackMap stack:
            aload 6 /* scope */
            ifnull 40
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack:
        40: aload 5 /* position */
            ifnull 41
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        41: .line 418
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 3
        43: .line 419
            aload 6 /* scope */
            ifnull 44
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugContext$Scope scope
      StackMap locals:
      StackMap stack:
        44: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 4
            aload 3
            ifnonnull 46
            aload 4
            astore 3
            goto 47
      StackMap locals:
      StackMap stack:
        46: aload 3
            aload 4
            if_acmpeq 47
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        47: aload 5 /* position */
            ifnull 48
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 5 // org.graalvm.compiler.debug.DebugCloseable position
      StackMap locals:
      StackMap stack:
        48: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: astore 4
            aload 3
            ifnonnull 50
            aload 4
            astore 3
            goto 51
      StackMap locals:
      StackMap stack:
        50: aload 3
            aload 4
            if_acmpeq 51
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        51: aload 3
            athrow
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.graph.Node org.graalvm.compiler.graph.NodeClass
      StackMap stack: java.lang.Throwable
        52: astore 3 /* throwable */
        start local 3 // java.lang.Throwable throwable
        53: .line 420
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            aload 3 /* throwable */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // java.lang.Throwable throwable
        end local 2 // org.graalvm.compiler.graph.NodeClass nodeClass
        end local 1 // org.graalvm.compiler.graph.Node node
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   54     0       this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   54     1       node  Lorg/graalvm/compiler/graph/Node;
            0   54     2  nodeClass  Lorg/graalvm/compiler/graph/NodeClass<*>;
            2   48     5   position  Lorg/graalvm/compiler/debug/DebugCloseable;
            3   44     6      scope  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            6   26     7  canonical  Lorg/graalvm/compiler/graph/Node;
            8   16    10     verify  Ljava/lang/AutoCloseable;
           21   22     8          e  Ljava/lang/Throwable;
           53   54     3  throwable  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           8    14      15  any
           7    17      17  any
           6    20      20  Class java.lang.Throwable
           3    23      42  any
          26    36      42  any
           2    24      45  any
          26    37      45  any
          39    40      45  any
          42    45      45  any
           1    25      49  any
          26    38      49  any
          39    41      49  any
          42    49      49  any
           0    25      52  Class java.lang.Throwable
          26    38      52  Class java.lang.Throwable
          39    41      52  Class java.lang.Throwable
          42    52      52  Class java.lang.Throwable
    Signature: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/NodeClass<*>;)Z
    MethodParameters:
           Name  Flags
      node       final
      nodeClass  

  private boolean performReplacement(org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 1 // org.graalvm.compiler.graph.Node node
        start local 2 // org.graalvm.compiler.graph.Node newCanonical
         0: .line 441
            aload 2 /* newCanonical */
            aload 1 /* node */
            if_acmpne 3
         1: .line 442
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            iconst_3
            ldc "Canonicalizer: work on %1s"
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;)V
         2: .line 443
            iconst_0
            ireturn
         3: .line 445
      StackMap locals:
      StackMap stack:
            aload 2 /* newCanonical */
            astore 3 /* canonical */
        start local 3 // org.graalvm.compiler.graph.Node canonical
         4: .line 446
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Canonicalizer: replacing %1s with %1s"
            aload 1 /* node */
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 447
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase.COUNTER_CANONICALIZED_NODES:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         6: .line 448
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.graph:()Lorg/graalvm/compiler/graph/Graph;
            checkcast org.graalvm.compiler.nodes.StructuredGraph
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         7: .line 449
            aload 3 /* canonical */
            ifnull 10
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifne 10
         8: .line 450
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 9
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.isDeleted:()Z
            ifeq 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 451
      StackMap locals: org.graalvm.compiler.graph.Node org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack:
            aload 4 /* graph */
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            astore 3 /* canonical */
        10: .line 453
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.calc.FloatingNode
            ifeq 17
        11: .line 454
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 14
            aload 3 /* canonical */
            ifnull 14
            aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.FixedNode
            ifeq 14
        12: .line 455
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            ifnonnull 14
            aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.StartNode
            ifne 14
            aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.AbstractMergeNode
            ifne 14
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* node */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        13: .line 456
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* canonical */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " : replacement should be floating or fixed and connected"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 457
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        15: .line 458
            aload 1 /* node */
            iconst_1
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;Z)V
        16: .line 459
            goto 43
        17: .line 460
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 19
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.FixedNode
            ifeq 18
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            ifnonnull 19
      StackMap locals:
      StackMap stack:
        18: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* node */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " -> "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* canonical */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " : node should be fixed & connected ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        19: .line 461
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.FixedNode
            astore 5 /* fixed */
        start local 5 // org.graalvm.compiler.nodes.FixedNode fixed
        20: .line 462
            aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.ControlSinkNode
            ifeq 24
        21: .line 464
            aload 5 /* fixed */
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        22: .line 465
            aload 5 /* fixed */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        23: .line 466
            iconst_1
            ireturn
        24: .line 468
      StackMap locals: org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 25
            aload 5 /* fixed */
            instanceof org.graalvm.compiler.nodes.FixedWithNextNode
            ifne 25
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        25: .line 469
      StackMap locals:
      StackMap stack:
            aload 5 /* fixed */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            astore 6 /* fixedWithNext */
        start local 6 // org.graalvm.compiler.nodes.FixedWithNextNode fixedWithNext
        26: .line 472
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 27
            aload 6 /* fixedWithNext */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            ifnonnull 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 473
      StackMap locals: org.graalvm.compiler.nodes.FixedWithNextNode
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.tool:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance$Tool;
            aload 6 /* fixedWithNext */
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance$Tool.addToWorkList:(Lorg/graalvm/compiler/graph/Node;)V
        28: .line 474
            aload 3 /* canonical */
            ifnonnull 32
        29: .line 476
            aload 1 /* node */
            aconst_null
            invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 477
            aload 6 /* fixedWithNext */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        31: .line 478
            goto 43
      StackMap locals:
      StackMap stack:
        32: aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.calc.FloatingNode
            ifeq 35
        33: .line 480
            aload 4 /* graph */
            aload 6 /* fixedWithNext */
            aload 3 /* canonical */
            checkcast org.graalvm.compiler.nodes.calc.FloatingNode
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFloating:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        34: .line 481
            goto 43
        35: .line 482
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 36
            aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.FixedNode
            ifne 36
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        36: .line 483
      StackMap locals:
      StackMap stack:
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            ifnonnull 40
        37: .line 484
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 38
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 38
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "replacement "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* canonical */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " shouldn't have successors"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        38: .line 486
      StackMap locals:
      StackMap stack:
            aload 4 /* graph */
            aload 6 /* fixedWithNext */
            aload 3 /* canonical */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.replaceFixedWithFixed:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        39: .line 487
            goto 43
        40: .line 488
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 41
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.cfgSuccessors:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 41
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "replacement "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* canonical */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " should have successors"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        41: .line 490
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        42: .line 491
            aload 6 /* fixedWithNext */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        end local 6 // org.graalvm.compiler.nodes.FixedWithNextNode fixedWithNext
        end local 5 // org.graalvm.compiler.nodes.FixedNode fixed
        43: .line 496
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // org.graalvm.compiler.graph.Node canonical
        end local 2 // org.graalvm.compiler.graph.Node newCanonical
        end local 1 // org.graalvm.compiler.graph.Node node
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   44     0           this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   44     1           node  Lorg/graalvm/compiler/graph/Node;
            0   44     2   newCanonical  Lorg/graalvm/compiler/graph/Node;
            4   44     3      canonical  Lorg/graalvm/compiler/graph/Node;
            7   44     4          graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           20   43     5          fixed  Lorg/graalvm/compiler/nodes/FixedNode;
           26   43     6  fixedWithNext  Lorg/graalvm/compiler/nodes/FixedWithNextNode;
    MethodParameters:
              Name  Flags
      node          final
      newCanonical  

  private boolean tryInferStamp(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
        start local 1 // org.graalvm.compiler.nodes.ValueNode node
         0: .line 507
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
            ifeq 9
         1: .line 508
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase.COUNTER_INFER_STAMP_CALLED:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         2: .line 509
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.inferStamp:()Z
            ifeq 9
         3: .line 510
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase.COUNTER_STAMP_CHANGED:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         4: .line 511
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* usage */
        start local 2 // org.graalvm.compiler.graph.Node usage
         6: .line 512
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.workList:Lorg/graalvm/compiler/graph/NodeWorkList;
            aload 2 /* usage */
            invokevirtual org.graalvm.compiler.graph.NodeWorkList.add:(Lorg/graalvm/compiler/graph/Node;)V
        end local 2 // org.graalvm.compiler.graph.Node usage
         7: .line 511
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 514
            iconst_1
            ireturn
         9: .line 517
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode node
        end local 0 // org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   10     1   node  Lorg/graalvm/compiler/nodes/ValueNode;
            6    7     2  usage  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      node  

  static org.graalvm.compiler.phases.common.CanonicalizerPhase access$0(org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance);
    descriptor: (Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;)Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 216
            aload 0
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.this$0:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$1(org.graalvm.compiler.graph.Graph$Mark, org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Graph$Mark;Lorg/graalvm/compiler/graph/Node;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
         0: .line 372
            getstatic org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.$assertionsDisabled:Z
            ifne 2
            aload 0
            aload 1
            invokevirtual org.graalvm.compiler.graph.Node.graph:()Lorg/graalvm/compiler/graph/Graph;
            invokevirtual org.graalvm.compiler.graph.Graph.getMark:()Lorg/graalvm/compiler/graph/Graph$Mark;
            invokevirtual org.graalvm.compiler.graph.Graph$Mark.equals:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "new node created while canonicalizing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()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 1
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 373
            aload 1
            invokevirtual org.graalvm.compiler.graph.Node.graph:()Lorg/graalvm/compiler/graph/Graph;
            aload 0
            invokevirtual org.graalvm.compiler.graph.Graph.getNewNodes:(Lorg/graalvm/compiler/graph/Graph$Mark;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 374
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "CanonicalizerPhase.java"
NestHost: org.graalvm.compiler.phases.common.CanonicalizerPhase
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public Mark = org.graalvm.compiler.graph.Graph$Mark of org.graalvm.compiler.graph.Graph
  public abstract NodeEventListener = org.graalvm.compiler.graph.Graph$NodeEventListener of org.graalvm.compiler.graph.Graph
  public final NodeEventScope = org.graalvm.compiler.graph.Graph$NodeEventScope of org.graalvm.compiler.graph.Graph
  public abstract BinaryCommutative = org.graalvm.compiler.graph.spi.Canonicalizable$BinaryCommutative of org.graalvm.compiler.graph.spi.Canonicalizable
  public final CanonicalizerFeature = org.graalvm.compiler.phases.common.CanonicalizerPhase$CanonicalizerFeature of org.graalvm.compiler.phases.common.CanonicalizerPhase
  public abstract CustomCanonicalization = org.graalvm.compiler.phases.common.CanonicalizerPhase$CustomCanonicalization of org.graalvm.compiler.phases.common.CanonicalizerPhase
  public abstract CustomSimplification = org.graalvm.compiler.phases.common.CanonicalizerPhase$CustomSimplification of org.graalvm.compiler.phases.common.CanonicalizerPhase
  private final Instance = org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance of org.graalvm.compiler.phases.common.CanonicalizerPhase
  org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance$1
  private final Tool = org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance$Tool of org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance