public class org.graalvm.compiler.lir.constopt.ConstantTree extends org.graalvm.compiler.core.common.cfg.PrintableDominatorOptimizationProblem<org.graalvm.compiler.lir.constopt.ConstantTree$Flags, org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.lir.constopt.ConstantTree
  super_class: org.graalvm.compiler.core.common.cfg.PrintableDominatorOptimizationProblem
{
  private final org.graalvm.compiler.core.common.cfg.BlockMap<java.util.List<org.graalvm.compiler.lir.constopt.UseEntry>> blockMap;
    descriptor: Lorg/graalvm/compiler/core/common/cfg/BlockMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/graalvm/compiler/core/common/cfg/BlockMap<Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;>;

  private static volatile int[] $SWITCH_TABLE$org$graalvm$compiler$lir$constopt$ConstantTree$Flags;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, 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 40
            ldc Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            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.lir.constopt.ConstantTree.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph<?>, org.graalvm.compiler.lir.constopt.DefUseTree);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph cfg
        start local 2 // org.graalvm.compiler.lir.constopt.DefUseTree tree
         0: .line 105
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* cfg */
            invokespecial org.graalvm.compiler.core.common.cfg.PrintableDominatorOptimizationProblem.<init>:(Ljava/lang/Class;Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;)V
         1: .line 106
            aload 0 /* this */
            new org.graalvm.compiler.core.common.cfg.BlockMap
            dup
            aload 1 /* cfg */
            invokespecial org.graalvm.compiler.core.common.cfg.BlockMap.<init>:(Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;)V
            putfield org.graalvm.compiler.lir.constopt.ConstantTree.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
         2: .line 107
            aload 2 /* tree */
            aload 0 /* this */
            invokedynamic accept(Lorg/graalvm/compiler/lir/constopt/ConstantTree;)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/lir/constopt/ConstantTree.lambda$0(Lorg/graalvm/compiler/lir/constopt/UseEntry;)V (7)
                  (Lorg/graalvm/compiler/lir/constopt/UseEntry;)V
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.forEach:(Ljava/util/function/Consumer;)V
         3: .line 108
            return
        end local 2 // org.graalvm.compiler.lir.constopt.DefUseTree tree
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph cfg
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    4     1   cfg  Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph<*>;
            0    4     2  tree  Lorg/graalvm/compiler/lir/constopt/DefUseTree;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph<*>;Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
    MethodParameters:
      Name  Flags
      cfg   
      tree  

  private java.util.List<org.graalvm.compiler.lir.constopt.UseEntry> getOrInitList(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 111
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantTree.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 112
            aload 2 /* list */
            ifnonnull 4
         2: .line 113
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* list */
         3: .line 114
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantTree.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 1 /* block */
            aload 2 /* list */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
         4: .line 116
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* list */
            areturn
        end local 2 // java.util.List list
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    5     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1    5     2   list  Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;
    MethodParameters:
       Name  Flags
      block  

  public java.util.List<org.graalvm.compiler.lir.constopt.UseEntry> getUsages(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 120
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantTree.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         1: .line 121
            aload 2 /* list */
            ifnonnull 3
         2: .line 122
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         3: .line 124
      StackMap locals: java.util.List
      StackMap stack:
            aload 2 /* list */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 2 // java.util.List list
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    4     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1    4     2   list  Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;
    MethodParameters:
       Name  Flags
      block  

  org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost getOrInitCost(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 132
            aload 0 /* this */
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.getCost:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost
            astore 2 /* cost */
        start local 2 // org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost cost
         1: .line 133
            aload 2 /* cost */
            ifnonnull 4
         2: .line 134
            new org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost
            dup
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.probability:()D
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantTree.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
            checkcast java.util.List
            iconst_1
            invokespecial org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.<init>:(DLjava/util/List;I)V
            astore 2 /* cost */
         3: .line 135
            aload 0 /* this */
            aload 1 /* block */
            aload 2 /* cost */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.setCost:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
         4: .line 137
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost
      StackMap stack:
            aload 2 /* cost */
            areturn
        end local 2 // org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost cost
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    5     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1    5     2   cost  Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
    MethodParameters:
       Name  Flags
      block  

  public java.lang.String getName(org.graalvm.compiler.lir.constopt.ConstantTree$Flags);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.lir.constopt.ConstantTree$Flags type
         0: .line 142
            invokestatic org.graalvm.compiler.lir.constopt.ConstantTree.$SWITCH_TABLE$org$graalvm$compiler$lir$constopt$ConstantTree$Flags:()[I
            aload 1 /* type */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$Flags.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 2
                    2: 1
                    3: 3
                    4: 4
              default: 5
          }
         1: .line 144
      StackMap locals:
      StackMap stack:
            ldc "hasUsage"
            areturn
         2: .line 146
      StackMap locals:
      StackMap stack:
            ldc "inSubtree"
            areturn
         3: .line 148
      StackMap locals:
      StackMap stack:
            ldc "materialize"
            areturn
         4: .line 150
      StackMap locals:
      StackMap stack:
            ldc "candidate"
            areturn
         5: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            invokespecial org.graalvm.compiler.core.common.cfg.PrintableDominatorOptimizationProblem.getName:(Ljava/lang/Enum;)Ljava/lang/String;
            areturn
        end local 1 // org.graalvm.compiler.lir.constopt.ConstantTree$Flags type
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    6     1  type  Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
    MethodParameters:
      Name  Flags
      type  

  public void forEachPropertyPair(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, java.util.function.BiConsumer<java.lang.String, java.lang.String>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/function/BiConsumer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        start local 2 // java.util.function.BiConsumer action
         0: .line 157
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.get:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 2
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominator:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            ifnull 1
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominator:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.get:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifne 2
         1: .line 158
      StackMap locals:
      StackMap stack:
            aload 2 /* action */
            ldc "hasDefinition"
            ldc "true"
            invokeinterface java.util.function.BiConsumer.accept:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* block */
            aload 2 /* action */
            invokespecial org.graalvm.compiler.core.common.cfg.PrintableDominatorOptimizationProblem.forEachPropertyPair:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/function/BiConsumer;)V
         3: .line 161
            return
        end local 2 // java.util.function.BiConsumer action
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    4     1   block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    4     2  action  Ljava/util/function/BiConsumer<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Ljava/util/function/BiConsumer<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      block   
      action  

  public long subTreeSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
         0: .line 164
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.stream:(Ljava/lang/Enum;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.count:()J
            lreturn
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;

  public org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?> getStartBlock();
    descriptor: ()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
         0: .line 168
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.stream:(Ljava/lang/Enum;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.cfg.AbstractBlockBase
            areturn
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
    Signature: ()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;

  public void markBlocks();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
         0: .line 172
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* block */
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         2: .line 173
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.USAGE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.get:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 4
         3: .line 174
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.setDominatorPath:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         4: .line 172
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 177
            return
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            2    4     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;

  public boolean isMarked(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 180
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.get:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ireturn
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    1     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
    MethodParameters:
       Name  Flags
      block  

  public boolean isLeafBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 184
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominated:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree org.graalvm.compiler.core.common.cfg.AbstractBlockBase top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.cfg.AbstractBlockBase
            astore 2 /* dom */
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase dom
         2: .line 185
            aload 0 /* this */
            aload 2 /* dom */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.isMarked:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 4
         3: .line 186
            iconst_0
            ireturn
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase dom
         4: .line 184
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 189
            iconst_1
            ireturn
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    6     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            2    4     2    dom  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
    MethodParameters:
       Name  Flags
      block  

  public void setSolution(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 193
            aload 0 /* this */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.MATERIALIZE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.set:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
         1: .line 194
            return
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    2     1  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
       Name  Flags
      block  

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
         0: .line 197
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            arraylength
            ireturn
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;

  public void traverseTreeWhileTrue(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, java.util.function.Predicate<org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/function/Predicate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        start local 2 // java.util.function.Predicate action
         0: .line 201
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree.$assertionsDisabled:Z
            ifne 1
            aload 1 /* block */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            ldc "block must not be null!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 202
      StackMap locals:
      StackMap stack:
            aload 2 /* action */
            aload 1 /* block */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 203
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominated:()Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic test(Lorg/graalvm/compiler/lir/constopt/ConstantTree;)Ljava/util/function/Predicate;
              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;)Z
                  org/graalvm/compiler/lir/constopt/ConstantTree.isMarked(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z (5)
                  (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            aload 0 /* this */
            aload 2 /* action */
            invokedynamic accept(Lorg/graalvm/compiler/lir/constopt/ConstantTree;Ljava/util/function/Predicate;)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/lir/constopt/ConstantTree.lambda$2(Ljava/util/function/Predicate;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V (7)
                  (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 205
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.function.Predicate action
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    4     1   block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0    4     2  action  Ljava/util/function/Predicate<Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Ljava/util/function/Predicate<Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;>;)V
    MethodParameters:
        Name  Flags
      block   
      action  

  public java.lang.String getName(java.lang.Enum);
    descriptor: (Ljava/lang/Enum;)Ljava/lang/String;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.graalvm.compiler.lir.constopt.ConstantTree$Flags
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.getName:(Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$org$graalvm$compiler$lir$constopt$ConstantTree$Flags();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 40
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree.$SWITCH_TABLE$org$graalvm$compiler$lir$constopt$ConstantTree$Flags:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.values:()[Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.CANDIDATE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$Flags.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.MATERIALIZE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$Flags.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$Flags.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.USAGE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$Flags.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic org.graalvm.compiler.lir.constopt.ConstantTree.$SWITCH_TABLE$org$graalvm$compiler$lir$constopt$ConstantTree$Flags:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  private void lambda$0(org.graalvm.compiler.lir.constopt.UseEntry);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/UseEntry;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 1 // org.graalvm.compiler.lir.constopt.UseEntry u
         0: .line 107
            aload 0 /* this */
            aload 1 /* u */
            invokevirtual org.graalvm.compiler.lir.constopt.UseEntry.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.getOrInitList:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/List;
            aload 1 /* u */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            return
        end local 1 // org.graalvm.compiler.lir.constopt.UseEntry u
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    1     1     u  Lorg/graalvm/compiler/lir/constopt/UseEntry;

  private void lambda$2(java.util.function.Predicate, org.graalvm.compiler.core.common.cfg.AbstractBlockBase);
    descriptor: (Ljava/util/function/Predicate;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase dominated
         0: .line 203
            aload 0 /* this */
            aload 2 /* dominated */
            aload 1
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.traverseTreeWhileTrue:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/function/Predicate;)V
            return
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase dominated
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantTree this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0    1     2  dominated  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<Ljava.lang.Object;>;
}
Signature: Lorg/graalvm/compiler/core/common/cfg/PrintableDominatorOptimizationProblem<Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;>;
SourceFile: "ConstantTree.java"
NestMembers:
  org.graalvm.compiler.lir.constopt.ConstantTree$Flags  org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Flags = org.graalvm.compiler.lir.constopt.ConstantTree$Flags of org.graalvm.compiler.lir.constopt.ConstantTree
  public NodeCost = org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost of org.graalvm.compiler.lir.constopt.ConstantTree