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 230
            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 241
            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 242
            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 245
            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 246
            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 249
            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 250
            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 252
            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 253
            aload 0 /* this */
            aload 4 /* newNodesMark */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.newNodesMark:Lorg/graalvm/compiler/graph/Graph$Mark;
         2: .line 254
            aload 0 /* this */
            aload 2 /* context */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.context:Lorg/graalvm/compiler/nodes/spi/CoreProviders;
         3: .line 255
            aload 0 /* this */
            aload 3 /* workingSet */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.initWorkingSet:Ljava/lang/Iterable;
         4: .line 256
            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 260
            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 265
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.isAfterFinalCanonicalization:()Z
            ifeq 2
         1: .line 266
            ldc "cannot run further canonicalizations after the final canonicalization"
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
         2: .line 268
      StackMap locals:
      StackMap stack:
            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;
         3: .line 269
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.newNodesMark:Lorg/graalvm/compiler/graph/Graph$Mark;
            ifnull 4
            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 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 2 /* wholeGraph */
        start local 2 // boolean wholeGraph
         6: .line 270
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.initWorkingSet:Ljava/lang/Iterable;
            ifnonnull 9
         7: .line 271
            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;
         8: .line 272
            goto 11
         9: .line 273
      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;
        10: .line 274
            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
        11: .line 276
      StackMap locals:
      StackMap stack:
            iload 2 /* wholeGraph */
            ifne 13
        12: .line 277
            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
        13: .line 280
      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;
        14: .line 281
            aload 0 /* this */
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.processWorkSet:(Lorg/graalvm/compiler/nodes/StructuredGraph;)I
            pop
        15: .line 282
            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.FINAL_CANONICALIZATION:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CanonicalizerFeature;
            invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 283
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.setAfterFinalCanonicalization:()V
        17: .line 285
      StackMap locals:
      StackMap stack:
            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   18     0        this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   18     1       graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            6   18     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 289
            iconst_0
            istore 2 /* sum */
        start local 2 // int sum
         1: .line 290
            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 320
            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 321
            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 322
            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 323
            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 324
            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 326
      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 321
      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 328
            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 329
      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 336
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifne 2
         1: .line 337
            iconst_0
            ireturn
         2: .line 339
      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 340
            aload 1 /* node */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 5
         4: .line 341
            iconst_1
            ireturn
         5: .line 343
      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 344
            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 345
            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 346
            iconst_1
            ireturn
         9: .line 348
      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 349
            iconst_1
            ireturn
        11: .line 351
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 25
        12: .line 352
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 4 /* valueNode */
        start local 4 // org.graalvm.compiler.nodes.ValueNode valueNode
        13: .line 353
            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 354
            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 355
            aload 6 /* constant */
            ifnull 21
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifne 21
        16: .line 356
            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 357
            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 358
            aload 4 /* valueNode */
            aload 7 /* stampConstant */
            getstatic org.graalvm.compiler.nodeinfo.InputType.Value:Lorg/graalvm/compiler/nodeinfo/InputType;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/nodeinfo/InputType;)V
        19: .line 359
            aload 4 /* valueNode */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
            pop
        20: .line 360
            iconst_1
            ireturn
        end local 7 // org.graalvm.compiler.nodes.ConstantNode stampConstant
        21: .line 361
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int jdk.vm.ci.meta.Constant
      StackMap stack:
            iload 5 /* improvedStamp */
            ifeq 25
        22: .line 363
            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 364
            iconst_1
            ireturn
        24: .line 366
      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 369
      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 373
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.valueNumberable:()Z
            ifeq 9
         1: .line 374
            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 375
            aload 3 /* newNode */
            ifnull 9
         3: .line 376
            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 377
      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 378
            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 379
            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 380
            iconst_1
            ireturn
        end local 3 // org.graalvm.compiler.graph.Node newNode
         9: .line 383
      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 387
            iconst_0
            istore 2 /* needsAssertion */
        start local 2 // boolean needsAssertion
         1: .line 388
            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 389
      StackMap locals: int
      StackMap stack:
            iload 2 /* needsAssertion */
            ifeq 5
         3: .line 390
            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 391
            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 396
      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 402
            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 403
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isCanonicalizable:()Z
            ifeq 23
         4: .line 404
            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 405
            aload 1 /* node */
            astore 7 /* canonical */
        start local 7 // org.graalvm.compiler.graph.Node canonical
         6: .line 406
            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 407
            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 */
         9: .line 408
            aload 7 /* canonical */
            aload 1 /* node */
            if_acmpne 11
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isCommutative:()Z
            ifeq 11
        10: .line 409
            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 */
        11: .line 411
      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 10 /* verify */
            ifnull 19
            aload 10 /* verify */
            invokeinterface java.lang.AutoCloseable.close:()V
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 8
            aload 10 /* verify */
            ifnull 13
            aload 10 /* verify */
            invokeinterface java.lang.AutoCloseable.close:()V
        end local 10 // java.lang.AutoCloseable verify
      StackMap locals:
      StackMap stack:
        13: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 9
            aload 8
            ifnonnull 15
            aload 9
            astore 8
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 8
            aload 9
            if_acmpeq 16
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: 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
        17: astore 8 /* e */
        start local 8 // java.lang.Throwable e
        18: .line 412
            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
        19: .line 414
      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 23
        20: .line 434
            aload 6 /* scope */
            ifnull 21
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack:
        21: aload 5 /* position */
            ifnull 22
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        22: .line 415
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // org.graalvm.compiler.graph.Node canonical
        23: .line 419
      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 36
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isSimplifiable:()Z
            ifeq 36
        24: .line 420
            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
        25: .line 421
            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
        26: .line 422
            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 28
        27: .line 423
            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
        28: .line 425
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifeq 32
        29: .line 426
            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
        30: .line 427
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isDeleted:()Z
            ifeq 32
        31: .line 428
            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
        32: .line 431
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isDeleted:()Z
        33: .line 434
            aload 6 /* scope */
            ifnull 34
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack: int
        34: aload 5 /* position */
            ifnull 35
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        35: .line 431
      StackMap locals:
      StackMap stack: int
            ireturn
        36: .line 434
      StackMap locals:
      StackMap stack:
            aload 6 /* scope */
            ifnull 37
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack:
        37: aload 5 /* position */
            ifnull 38
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        38: .line 433
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 3
        40: .line 434
            aload 6 /* scope */
            ifnull 41
            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:
        41: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        42: astore 4
            aload 3
            ifnonnull 43
            aload 4
            astore 3
            goto 44
      StackMap locals:
      StackMap stack:
        43: aload 3
            aload 4
            if_acmpeq 44
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        44: aload 5 /* position */
            ifnull 45
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 5 // org.graalvm.compiler.debug.DebugCloseable position
      StackMap locals:
      StackMap stack:
        45: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        46: astore 4
            aload 3
            ifnonnull 47
            aload 4
            astore 3
            goto 48
      StackMap locals:
      StackMap stack:
        47: aload 3
            aload 4
            if_acmpeq 48
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        48: 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
        49: astore 3 /* throwable */
        start local 3 // java.lang.Throwable throwable
        50: .line 435
            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   51     0       this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   51     1       node  Lorg/graalvm/compiler/graph/Node;
            0   51     2  nodeClass  Lorg/graalvm/compiler/graph/NodeClass<*>;
            2   45     5   position  Lorg/graalvm/compiler/debug/DebugCloseable;
            3   41     6      scope  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            6   23     7  canonical  Lorg/graalvm/compiler/graph/Node;
            8   13    10     verify  Ljava/lang/AutoCloseable;
           18   19     8          e  Ljava/lang/Throwable;
           50   51     3  throwable  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           8    11      12  any
           7    14      14  any
           6    17      17  Class java.lang.Throwable
           3    20      39  any
          23    33      39  any
           2    21      42  any
          23    34      42  any
          36    37      42  any
          39    42      42  any
           1    22      46  any
          23    35      46  any
          36    38      46  any
          39    46      46  any
           0    22      49  Class java.lang.Throwable
          23    35      49  Class java.lang.Throwable
          36    38      49  Class java.lang.Throwable
          39    49      49  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 456
            aload 2 /* newCanonical */
            aload 1 /* node */
            if_acmpne 3
         1: .line 457
            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 458
            iconst_0
            ireturn
         3: .line 460
      StackMap locals:
      StackMap stack:
            aload 2 /* newCanonical */
            astore 3 /* canonical */
        start local 3 // org.graalvm.compiler.graph.Node canonical
         4: .line 461
            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 462
            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 463
            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 464
            aload 3 /* canonical */
            ifnull 10
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifne 10
         8: .line 465
            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 466
      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 468
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.calc.FloatingNode
            ifeq 17
        11: .line 469
            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 470
            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 471
            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 472
      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 473
            aload 1 /* node */
            iconst_1
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;Z)V
        16: .line 474
            goto 43
        17: .line 475
      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 476
      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 477
            aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.ControlSinkNode
            ifeq 24
        21: .line 479
            aload 5 /* fixed */
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        22: .line 480
            aload 5 /* fixed */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        23: .line 481
            iconst_1
            ireturn
        24: .line 483
      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 484
      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 487
            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 488
      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 489
            aload 3 /* canonical */
            ifnonnull 32
        29: .line 491
            aload 1 /* node */
            aconst_null
            invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 492
            aload 6 /* fixedWithNext */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        31: .line 493
            goto 43
      StackMap locals:
      StackMap stack:
        32: aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.calc.FloatingNode
            ifeq 35
        33: .line 495
            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 496
            goto 43
        35: .line 497
      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 498
      StackMap locals:
      StackMap stack:
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            ifnonnull 40
        37: .line 499
            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 501
      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 502
            goto 43
        40: .line 503
      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 505
      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 506
            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 511
      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 522
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
            ifeq 9
         1: .line 523
            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 524
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.inferStamp:()Z
            ifeq 9
         3: .line 525
            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 526
            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 527
            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 526
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 529
            iconst_1
            ireturn
         9: .line 532
      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 230
            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 392
            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 393
            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 394
      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 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