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.phases.tiers.PhaseContext context;
    descriptor: Lorg/graalvm/compiler/phases/tiers/PhaseContext;
    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 164
            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.phases.tiers.PhaseContext);
    descriptor: (Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/tiers/PhaseContext;)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.phases.tiers.PhaseContext context
         0: .line 175
            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/phases/tiers/PhaseContext;Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph$Mark;)V
         1: .line 176
            return
        end local 2 // org.graalvm.compiler.phases.tiers.PhaseContext 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/phases/tiers/PhaseContext;
    MethodParameters:
         Name  Flags
      this$0   final
      context  

  private void <init>(org.graalvm.compiler.phases.tiers.PhaseContext, java.lang.Iterable<? extends org.graalvm.compiler.graph.Node>);
    descriptor: (Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/tiers/PhaseContext;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.phases.tiers.PhaseContext context
        start local 3 // java.lang.Iterable workingSet
         0: .line 179
            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/phases/tiers/PhaseContext;Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph$Mark;)V
         1: .line 180
            return
        end local 3 // java.lang.Iterable workingSet
        end local 2 // org.graalvm.compiler.phases.tiers.PhaseContext 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/phases/tiers/PhaseContext;
            0    2     3  workingSet  Ljava/lang/Iterable<+Lorg/graalvm/compiler/graph/Node;>;
    Signature: (Lorg/graalvm/compiler/phases/tiers/PhaseContext;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.phases.tiers.PhaseContext, org.graalvm.compiler.graph.Graph$Mark);
    descriptor: (Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/phases/tiers/PhaseContext;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.phases.tiers.PhaseContext context
        start local 3 // org.graalvm.compiler.graph.Graph$Mark newNodesMark
         0: .line 183
            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/phases/tiers/PhaseContext;Ljava/lang/Iterable;Lorg/graalvm/compiler/graph/Graph$Mark;)V
         1: .line 184
            return
        end local 3 // org.graalvm.compiler.graph.Graph$Mark newNodesMark
        end local 2 // org.graalvm.compiler.phases.tiers.PhaseContext 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/phases/tiers/PhaseContext;
            0    2     3  newNodesMark  Lorg/graalvm/compiler/graph/Graph$Mark;
    MethodParameters:
              Name  Flags
      this$0        final
      context       
      newNodesMark  

  private void <init>(org.graalvm.compiler.phases.tiers.PhaseContext, 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/phases/tiers/PhaseContext;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.phases.tiers.PhaseContext context
        start local 3 // java.lang.Iterable workingSet
        start local 4 // org.graalvm.compiler.graph.Graph$Mark newNodesMark
         0: .line 186
            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 187
            aload 0 /* this */
            aload 4 /* newNodesMark */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.newNodesMark:Lorg/graalvm/compiler/graph/Graph$Mark;
         2: .line 188
            aload 0 /* this */
            aload 2 /* context */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.context:Lorg/graalvm/compiler/phases/tiers/PhaseContext;
         3: .line 189
            aload 0 /* this */
            aload 3 /* workingSet */
            putfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.initWorkingSet:Ljava/lang/Iterable;
         4: .line 190
            return
        end local 4 // org.graalvm.compiler.graph.Graph$Mark newNodesMark
        end local 3 // java.lang.Iterable workingSet
        end local 2 // org.graalvm.compiler.phases.tiers.PhaseContext 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/phases/tiers/PhaseContext;
            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/phases/tiers/PhaseContext;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 194
            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 199
            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 200
            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 201
            aload 0 /* this */
            getfield org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.initWorkingSet:Ljava/lang/Iterable;
            ifnonnull 7
         5: .line 202
            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 203
            goto 9
         7: .line 204
      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 205
            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 207
      StackMap locals:
      StackMap stack:
            iload 2 /* wholeGraph */
            ifne 11
        10: .line 208
            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 210
      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 211
            aload 0 /* this */
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.processWorkSet:(Lorg/graalvm/compiler/nodes/StructuredGraph;)V
        13: .line 212
            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 void processWorkSet(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, 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 216
            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 2 /* listener */
        start local 2 // org.graalvm.compiler.graph.Graph$NodeEventListener listener
         1: .line 239
            aconst_null
            astore 3
            aconst_null
            astore 4
         2: aload 1 /* graph */
            aload 2 /* listener */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.trackNodeEvents:(Lorg/graalvm/compiler/graph/Graph$NodeEventListener;)Lorg/graalvm/compiler/graph/Graph$NodeEventScope;
            astore 5 /* nes */
        start local 5 // org.graalvm.compiler.graph.Graph$NodeEventScope nes
         3: .line 240
            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 7
            goto 8
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.graph.Graph$NodeEventListener java.lang.Throwable java.lang.Throwable org.graalvm.compiler.graph.Graph$NodeEventScope top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 6 /* n */
        start local 6 // org.graalvm.compiler.graph.Node n
         5: .line 241
            aload 0 /* this */
            aload 6 /* n */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance.processNode:(Lorg/graalvm/compiler/graph/Node;)Z
            istore 8 /* changed */
        start local 8 // boolean changed
         6: .line 242
            iload 8 /* changed */
            ifeq 8
            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 8
         7: .line 243
            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 6 /* n */
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        end local 8 // boolean changed
        end local 6 // org.graalvm.compiler.graph.Node n
         8: .line 240
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 246
            aload 5 /* nes */
            ifnull 15
            aload 5 /* nes */
            invokevirtual org.graalvm.compiler.graph.Graph$NodeEventScope.close:()V
            goto 15
      StackMap locals: org.graalvm.compiler.phases.common.CanonicalizerPhase$Instance org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.graph.Graph$NodeEventListener java.lang.Throwable java.lang.Throwable org.graalvm.compiler.graph.Graph$NodeEventScope
      StackMap stack: java.lang.Throwable
        10: astore 3
            aload 5 /* nes */
            ifnull 11
            aload 5 /* nes */
            invokevirtual org.graalvm.compiler.graph.Graph$NodeEventScope.close:()V
        end local 5 // org.graalvm.compiler.graph.Graph$NodeEventScope nes
      StackMap locals:
      StackMap stack:
        11: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 3
            ifnonnull 13
            aload 4
            astore 3
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 3
            aload 4
            if_acmpeq 14
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 3
            athrow
        15: .line 247
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.graph.Graph$NodeEventListener listener
        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   16     0      this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   16     1     graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            1   16     2  listener  Lorg/graalvm/compiler/graph/Graph$NodeEventListener;
            3   11     5       nes  Lorg/graalvm/compiler/graph/Graph$NodeEventScope;
            5    8     6         n  Lorg/graalvm/compiler/graph/Node;
            6    8     8   changed  Z
      Exception table:
        from    to  target  type
           3     9      10  any
           2    12      12  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 253
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifne 2
         1: .line 254
            iconst_0
            ireturn
         2: .line 256
      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 257
            aload 1 /* node */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 5
         4: .line 258
            iconst_1
            ireturn
         5: .line 260
      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 261
            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 262
            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 263
            iconst_1
            ireturn
         9: .line 265
      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.globalValueNumber: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 266
            iconst_1
            ireturn
        11: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.ValueNode
            ifeq 25
        12: .line 269
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 4 /* valueNode */
        start local 4 // org.graalvm.compiler.nodes.ValueNode valueNode
        13: .line 270
            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 271
            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 272
            aload 6 /* constant */
            ifnull 21
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifne 21
        16: .line 273
            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/phases/tiers/PhaseContext;
            invokevirtual org.graalvm.compiler.phases.tiers.PhaseContext.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 274
            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 275
            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 276
            aload 4 /* valueNode */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.tryKillUnused:(Lorg/graalvm/compiler/graph/Node;)Z
            pop
        20: .line 277
            iconst_1
            ireturn
        end local 7 // org.graalvm.compiler.nodes.ConstantNode stampConstant
        21: .line 278
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int jdk.vm.ci.meta.Constant
      StackMap stack:
            iload 5 /* improvedStamp */
            ifeq 25
        22: .line 280
            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 281
            iconst_1
            ireturn
        24: .line 283
      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 286
      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 290
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.valueNumberable:()Z
            ifeq 9
         1: .line 291
            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 292
            aload 3 /* newNode */
            ifnull 9
         3: .line 293
            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 294
      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 295
            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 296
            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 297
            iconst_1
            ireturn
        end local 3 // org.graalvm.compiler.graph.Node newNode
         9: .line 300
      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 304
            iconst_0
            istore 2 /* needsAssertion */
        start local 2 // boolean needsAssertion
         1: .line 305
            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 306
      StackMap locals: int
      StackMap stack:
            iload 2 /* needsAssertion */
            ifeq 5
         3: .line 307
            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 308
            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 313
      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 319
            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 320
            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.customCanonicalizer:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CustomCanonicalizer;
            ifnull 14
         4: .line 321
            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.customCanonicalizer:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CustomCanonicalizer;
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase$CustomCanonicalizer.canonicalize:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            astore 7 /* canonical */
        start local 7 // org.graalvm.compiler.graph.Node canonical
         5: .line 322
            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 9
         6: .line 354
            aload 6 /* scope */
            ifnull 7
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      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:
         7: aload 5 /* position */
            ifnull 8
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
         8: .line 323
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         9: .line 325
      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.customCanonicalizer:Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$CustomCanonicalizer;
            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.phases.common.CanonicalizerPhase$CustomCanonicalizer.simplify:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/spi/SimplifierTool;)V
        10: .line 326
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isDeleted:()Z
            ifeq 14
        11: .line 354
            aload 6 /* scope */
            ifnull 12
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack:
        12: aload 5 /* position */
            ifnull 13
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        13: .line 327
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // org.graalvm.compiler.graph.Node canonical
        14: .line 331
      StackMap locals:
      StackMap stack:
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isCanonicalizable:()Z
            ifeq 33
        15: .line 332
            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
        16: .line 334
            aconst_null
            astore 8
            aconst_null
            astore 9
        17: 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
        18: .line 335
            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 */
        start local 7 // org.graalvm.compiler.graph.Node canonical
        19: .line 336
            aload 7 /* canonical */
            aload 1 /* node */
            if_acmpne 21
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isCommutative:()Z
            ifeq 21
        20: .line 337
            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 */
        21: .line 339
      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 29
            aload 10 /* verify */
            invokeinterface java.lang.AutoCloseable.close:()V
            goto 29
        end local 7 // org.graalvm.compiler.graph.Node canonical
      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 top java.lang.Throwable java.lang.Throwable java.lang.AutoCloseable
      StackMap stack: java.lang.Throwable
        22: astore 8
            aload 10 /* verify */
            ifnull 23
            aload 10 /* verify */
            invokeinterface java.lang.AutoCloseable.close:()V
        end local 10 // java.lang.AutoCloseable verify
      StackMap locals:
      StackMap stack:
        23: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 9
            aload 8
            ifnonnull 25
            aload 9
            astore 8
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 8
            aload 9
            if_acmpeq 26
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: 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
      StackMap stack: java.lang.Throwable
        27: astore 8 /* e */
        start local 8 // java.lang.Throwable e
        28: .line 340
            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
        start local 7 // org.graalvm.compiler.graph.Node canonical
        29: .line 342
      StackMap locals: org.graalvm.compiler.graph.Node
      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 33
        30: .line 354
            aload 6 /* scope */
            ifnull 31
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack:
        31: aload 5 /* position */
            ifnull 32
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        32: .line 343
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // org.graalvm.compiler.graph.Node canonical
        33: .line 347
      StackMap locals:
      StackMap stack:
            aload 2 /* nodeClass */
            invokevirtual org.graalvm.compiler.graph.NodeClass.isSimplifiable:()Z
            ifeq 41
            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.simplify:Z
            ifeq 41
        34: .line 348
            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
        35: .line 349
            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
        36: .line 350
            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
        37: .line 351
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.isDeleted:()Z
        38: .line 354
            aload 6 /* scope */
            ifnull 39
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack: int
        39: aload 5 /* position */
            ifnull 40
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        40: .line 351
      StackMap locals:
      StackMap stack: int
            ireturn
        41: .line 354
      StackMap locals:
      StackMap stack:
            aload 6 /* scope */
            ifnull 42
            aload 6 /* scope */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
      StackMap locals:
      StackMap stack:
        42: aload 5 /* position */
            ifnull 43
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        43: .line 353
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        44: astore 3
        45: .line 354
            aload 6 /* scope */
            ifnull 46
            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:
        46: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        47: astore 4
            aload 3
            ifnonnull 48
            aload 4
            astore 3
            goto 49
      StackMap locals:
      StackMap stack:
        48: aload 3
            aload 4
            if_acmpeq 49
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        49: aload 5 /* position */
            ifnull 50
            aload 5 /* position */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 5 // org.graalvm.compiler.debug.DebugCloseable position
      StackMap locals:
      StackMap stack:
        50: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        51: astore 4
            aload 3
            ifnonnull 52
            aload 4
            astore 3
            goto 53
      StackMap locals:
      StackMap stack:
        52: aload 3
            aload 4
            if_acmpeq 53
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        53: 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
        54: astore 3 /* throwable */
        start local 3 // java.lang.Throwable throwable
        55: .line 355
            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   56     0       this  Lorg/graalvm/compiler/phases/common/CanonicalizerPhase$Instance;
            0   56     1       node  Lorg/graalvm/compiler/graph/Node;
            0   56     2  nodeClass  Lorg/graalvm/compiler/graph/NodeClass<*>;
            2   50     5   position  Lorg/graalvm/compiler/debug/DebugCloseable;
            3   46     6      scope  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            5   14     7  canonical  Lorg/graalvm/compiler/graph/Node;
           19   22     7  canonical  Lorg/graalvm/compiler/graph/Node;
           29   33     7  canonical  Lorg/graalvm/compiler/graph/Node;
           18   23    10     verify  Ljava/lang/AutoCloseable;
           28   29     8          e  Ljava/lang/Throwable;
           55   56     3  throwable  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          18    21      22  any
          17    24      24  any
          16    27      27  Class java.lang.Throwable
           3     6      44  any
           9    11      44  any
          14    30      44  any
          33    38      44  any
           2     7      47  any
           9    12      47  any
          14    31      47  any
          33    39      47  any
          41    42      47  any
          44    47      47  any
           1     8      51  any
           9    13      51  any
          14    32      51  any
          33    40      51  any
          41    43      51  any
          44    51      51  any
           0     8      54  Class java.lang.Throwable
           9    13      54  Class java.lang.Throwable
          14    32      54  Class java.lang.Throwable
          33    40      54  Class java.lang.Throwable
          41    43      54  Class java.lang.Throwable
          44    54      54  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 376
            aload 2 /* newCanonical */
            aload 1 /* node */
            if_acmpne 3
         1: .line 377
            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 378
            iconst_0
            ireturn
         3: .line 380
      StackMap locals:
      StackMap stack:
            aload 2 /* newCanonical */
            astore 3 /* canonical */
        start local 3 // org.graalvm.compiler.graph.Node canonical
         4: .line 381
            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 382
            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 383
            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 384
            aload 3 /* canonical */
            ifnull 10
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.isAlive:()Z
            ifne 10
         8: .line 385
            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 386
      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 388
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.calc.FloatingNode
            ifeq 17
        11: .line 389
            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 390
            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 391
            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 392
      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 393
            aload 1 /* node */
            iconst_1
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;Z)V
        16: .line 394
            goto 43
        17: .line 395
      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 396
      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 397
            aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.ControlSinkNode
            ifeq 24
        21: .line 399
            aload 5 /* fixed */
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.nodes.FixedNode.replaceAtPredecessor:(Lorg/graalvm/compiler/graph/Node;)V
        22: .line 400
            aload 5 /* fixed */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killCFG:(Lorg/graalvm/compiler/nodes/FixedNode;)V
        23: .line 401
            iconst_1
            ireturn
        24: .line 403
      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 404
      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 407
            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 408
      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 409
            aload 3 /* canonical */
            ifnonnull 32
        29: .line 411
            aload 1 /* node */
            aconst_null
            invokevirtual org.graalvm.compiler.graph.Node.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        30: .line 412
            aload 6 /* fixedWithNext */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.removeFixedWithUnusedInputs:(Lorg/graalvm/compiler/nodes/FixedWithNextNode;)V
        31: .line 413
            goto 43
      StackMap locals:
      StackMap stack:
        32: aload 3 /* canonical */
            instanceof org.graalvm.compiler.nodes.calc.FloatingNode
            ifeq 35
        33: .line 415
            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 416
            goto 43
        35: .line 417
      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 418
      StackMap locals:
      StackMap stack:
            aload 3 /* canonical */
            invokevirtual org.graalvm.compiler.graph.Node.predecessor:()Lorg/graalvm/compiler/graph/Node;
            ifnonnull 40
        37: .line 419
            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 421
      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 422
            goto 43
        40: .line 423
      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 425
      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 426
            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 431
      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 442
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
            ifeq 9
         1: .line 443
            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 444
            aload 1 /* node */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.inferStamp:()Z
            ifeq 9
         3: .line 445
            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 446
            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 447
            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 446
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 449
            iconst_1
            ireturn
         9: .line 452
      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 164
            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 309
            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 310
            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 311
      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 abstract CustomCanonicalizer = org.graalvm.compiler.phases.common.CanonicalizerPhase$CustomCanonicalizer 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