final class org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization
  super_class: java.lang.Object
{
  private final org.graalvm.compiler.lir.LIR lir;
    descriptor: Lorg/graalvm/compiler/lir/LIR;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.lir.gen.LIRGeneratorTool lirGen;
    descriptor: Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.graalvm.compiler.lir.constopt.VariableMap<org.graalvm.compiler.lir.constopt.DefUseTree> map;
    descriptor: Lorg/graalvm/compiler/lir/constopt/VariableMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/graalvm/compiler/lir/constopt/VariableMap<Lorg/graalvm/compiler/lir/constopt/DefUseTree;>;

  private final java.util.BitSet phiConstants;
    descriptor: Ljava/util/BitSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.BitSet defined;
    descriptor: Ljava/util/BitSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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 final org.graalvm.compiler.core.common.cfg.BlockMap<org.graalvm.compiler.lir.LIRInsertionBuffer> insertionBuffers;
    descriptor: Lorg/graalvm/compiler/core/common/cfg/BlockMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/graalvm/compiler/core/common/cfg/BlockMap<Lorg/graalvm/compiler/lir/LIRInsertionBuffer;>;

  private final org.graalvm.compiler.debug.DebugContext debug;
    descriptor: Lorg/graalvm/compiler/debug/DebugContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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 93
            ldc Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization;
            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.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(org.graalvm.compiler.lir.LIR, org.graalvm.compiler.lir.gen.LIRGeneratorTool);
    descriptor: (Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.lir.LIR lir
        start local 2 // org.graalvm.compiler.lir.gen.LIRGeneratorTool lirGen
         0: .line 103
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 104
            aload 0 /* this */
            aload 1 /* lir */
            putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
         2: .line 105
            aload 0 /* this */
            aload 1 /* lir */
            invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
         3: .line 106
            aload 0 /* this */
            aload 2 /* lirGen */
            putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lirGen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
         4: .line 107
            aload 0 /* this */
            new org.graalvm.compiler.lir.constopt.VariableMap
            dup
            invokespecial org.graalvm.compiler.lir.constopt.VariableMap.<init>:()V
            putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
         5: .line 108
            aload 0 /* this */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.phiConstants:Ljava/util/BitSet;
         6: .line 109
            aload 0 /* this */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.defined:Ljava/util/BitSet;
         7: .line 110
            aload 0 /* this */
            new org.graalvm.compiler.core.common.cfg.BlockMap
            dup
            aload 1 /* lir */
            invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            invokespecial org.graalvm.compiler.core.common.cfg.BlockMap.<init>:(Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;)V
            putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.insertionBuffers:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
         8: .line 111
            aload 0 /* this */
            new org.graalvm.compiler.core.common.cfg.BlockMap
            dup
            aload 1 /* lir */
            invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            invokespecial org.graalvm.compiler.core.common.cfg.BlockMap.<init>:(Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;)V
            putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
         9: .line 112
            return
        end local 2 // org.graalvm.compiler.lir.gen.LIRGeneratorTool lirGen
        end local 1 // org.graalvm.compiler.lir.LIR lir
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0   10     1     lir  Lorg/graalvm/compiler/lir/LIR;
            0   10     2  lirGen  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    MethodParameters:
        Name  Flags
      lir     
      lirGen  

  private void apply();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=12, args_size=1
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
         0: .line 116
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "ConstantLoadOptimization"
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
            astore 3 /* indent */
        start local 3 // org.graalvm.compiler.debug.Indent indent
         2: .line 117
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "BuildDefUseTree"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 6 /* s */
        start local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
         4: .line 119
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            invokeinterface org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 8
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         5: aload 10
            iload 8
            aaload
            astore 7 /* b */
        start local 7 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
         6: .line 120
            aload 0 /* this */
            aload 7 /* b */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.analyzeBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        end local 7 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
         7: .line 119
            iinc 8 1
      StackMap locals:
      StackMap stack:
         8: iload 8
            iload 9
            if_icmplt 5
         9: .line 123
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
            aload 0 /* this */
            invokedynamic test(Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;)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/ConstantLoadOptimization$Optimization.lambda$0(Lorg/graalvm/compiler/lir/constopt/DefUseTree;)Z (7)
                  (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)Z
            invokevirtual org.graalvm.compiler.lir.constopt.VariableMap.filter:(Ljava/util/function/Predicate;)V
        10: .line 132
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
            aload 0 /* this */
            invokedynamic accept(Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;)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/ConstantLoadOptimization$Optimization.lambda$1(Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V (7)
                  (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
            invokevirtual org.graalvm.compiler.lir.constopt.VariableMap.forEach:(Ljava/util/function/Consumer;)V
        11: .line 133
            aload 6 /* s */
            ifnull 19
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 19
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
        12: astore 4
            aload 6 /* s */
            ifnull 13
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        13: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 5
            aload 4
            ifnonnull 15
            aload 5
            astore 4
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4
            aload 5
            if_acmpeq 16
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 4
            athrow
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        17: astore 4 /* e */
        start local 4 // java.lang.Throwable e
        18: .line 134
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            aload 4 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Throwable e
        19: .line 137
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4
            aconst_null
            astore 5
        20: aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "BuildConstantTree"
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 6 /* s */
        start local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
        21: .line 139
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
            aload 0 /* this */
            invokedynamic accept(Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;)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/ConstantLoadOptimization$Optimization.createConstantTree(Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V (7)
                  (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
            invokevirtual org.graalvm.compiler.lir.constopt.VariableMap.forEach:(Ljava/util/function/Consumer;)V
        22: .line 142
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            invokeinterface org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 26
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope top top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
        23: aload 11
            iload 9
            aaload
            astore 8 /* b */
        start local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
        24: .line 143
            aload 0 /* this */
            aload 8 /* b */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.rewriteBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        end local 8 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase b
        25: .line 142
            iinc 9 1
      StackMap locals:
      StackMap stack:
        26: iload 9
            iload 10
            if_icmplt 23
        27: .line 146
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
            ifne 28
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.verifyStates:()Z
            ifne 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 147
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack:
            aload 6 /* s */
            ifnull 36
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 36
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 4
            aload 6 /* s */
            ifnull 30
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        30: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 5
            aload 4
            ifnonnull 32
            aload 5
            astore 4
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 4
            aload 5
            if_acmpeq 33
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        33: aload 4
            athrow
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        34: astore 4 /* e */
        start local 4 // java.lang.Throwable e
        35: .line 148
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            aload 4 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Throwable e
        36: .line 150
      StackMap locals:
      StackMap stack:
            aload 3 /* indent */
            ifnull 42
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 42
      StackMap locals:
      StackMap stack: java.lang.Throwable
        37: astore 1
            aload 3 /* indent */
            ifnull 38
            aload 3 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 3 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        38: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 2
            aload 1
            ifnonnull 40
            aload 2
            astore 1
            goto 41
      StackMap locals:
      StackMap stack:
        40: aload 1
            aload 2
            if_acmpeq 41
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        41: aload 1
            athrow
        42: .line 151
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   43     0    this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            2   38     3  indent  Lorg/graalvm/compiler/debug/Indent;
            4   13     6       s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
            6    7     7       b  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           18   19     4       e  Ljava/lang/Throwable;
           21   30     6       s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           24   25     8       b  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
           35   36     4       e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4    11      12  any
           3    14      14  any
           2    17      17  Class java.lang.Throwable
          21    28      29  any
          20    31      31  any
          19    34      34  Class java.lang.Throwable
           2    36      37  any
           1    39      39  any

  private boolean verifyStates();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
         0: .line 154
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
            aload 0 /* this */
            invokedynamic accept(Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;)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/ConstantLoadOptimization$Optimization.verifyStateUsage(Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V (7)
                  (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
            invokevirtual org.graalvm.compiler.lir.constopt.VariableMap.forEach:(Ljava/util/function/Consumer;)V
         1: .line 155
            iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;

  private void verifyStateUsage(org.graalvm.compiler.lir.constopt.DefUseTree);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
         0: .line 159
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getVariable:()Lorg/graalvm/compiler/lir/Variable;
            astore 2 /* var */
        start local 2 // org.graalvm.compiler.lir.Variable var
         1: .line 160
            new org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization$1
            dup
            aload 0 /* this */
            aload 2 /* var */
            invokespecial org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization$1.<init>:(Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;Lorg/graalvm/compiler/lir/Variable;)V
            astore 3 /* stateConsumer */
        start local 3 // org.graalvm.compiler.lir.ValueConsumer stateConsumer
         2: .line 167
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            invokeinterface org.graalvm.compiler.core.common.cfg.AbstractControlFlowGraph.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 9
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.lir.constopt.DefUseTree org.graalvm.compiler.lir.Variable org.graalvm.compiler.lir.ValueConsumer top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         3: aload 7
            iload 5
            aaload
            astore 4 /* block */
        start local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         4: .line 168
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            aload 4 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 9
            goto 7
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.lir.constopt.DefUseTree org.graalvm.compiler.lir.Variable org.graalvm.compiler.lir.ValueConsumer org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] top java.util.Iterator
      StackMap stack:
         5: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 8 /* inst */
        start local 8 // org.graalvm.compiler.lir.LIRInstruction inst
         6: .line 170
            aload 8 /* inst */
            aload 3 /* stateConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachState:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
        end local 8 // org.graalvm.compiler.lir.LIRInstruction inst
         7: .line 168
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         8: .line 167
            iinc 5 1
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.lir.constopt.DefUseTree org.graalvm.compiler.lir.Variable org.graalvm.compiler.lir.ValueConsumer top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
      StackMap stack:
         9: iload 5
            iload 6
            if_icmplt 3
        10: .line 173
            return
        end local 3 // org.graalvm.compiler.lir.ValueConsumer stateConsumer
        end local 2 // org.graalvm.compiler.lir.Variable var
        end local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0   11     1           tree  Lorg/graalvm/compiler/lir/constopt/DefUseTree;
            1   11     2            var  Lorg/graalvm/compiler/lir/Variable;
            2   11     3  stateConsumer  Lorg/graalvm/compiler/lir/ValueConsumer;
            4    8     4          block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            6    7     8           inst  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
      Name  Flags
      tree  

  private static boolean isConstantLoad(org.graalvm.compiler.lir.LIRInstruction);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.LIRInstruction inst
         0: .line 176
            aload 0 /* inst */
            invokestatic org.graalvm.compiler.lir.StandardOp$LoadConstantOp.isLoadConstantOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
            ifne 2
         1: .line 177
            iconst_0
            ireturn
         2: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* inst */
            invokestatic org.graalvm.compiler.lir.StandardOp$LoadConstantOp.asLoadConstantOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/StandardOp$LoadConstantOp;
            invokeinterface org.graalvm.compiler.lir.StandardOp$LoadConstantOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ireturn
        end local 0 // org.graalvm.compiler.lir.LIRInstruction inst
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  inst  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
      Name  Flags
      inst  

  private void addUsageToBlockMap(org.graalvm.compiler.lir.constopt.UseEntry);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/UseEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.lir.constopt.UseEntry entry
         0: .line 183
            aload 1 /* entry */
            invokevirtual org.graalvm.compiler.lir.constopt.UseEntry.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 2 /* block */
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         1: .line 184
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 2 /* 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 3 /* list */
        start local 3 // java.util.List list
         2: .line 185
            aload 3 /* list */
            ifnonnull 5
         3: .line 186
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* list */
         4: .line 187
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 2 /* block */
            aload 3 /* list */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
         5: .line 189
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List
      StackMap stack:
            aload 3 /* list */
            aload 1 /* entry */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 190
            return
        end local 3 // java.util.List list
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 1 // org.graalvm.compiler.lir.constopt.UseEntry entry
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0    7     1  entry  Lorg/graalvm/compiler/lir/constopt/UseEntry;
            1    7     2  block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            2    7     3   list  Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;
    MethodParameters:
       Name  Flags
      entry  

  private void analyzeBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 197
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Block: %s"
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 4 /* indent */
        start local 4 // org.graalvm.compiler.debug.Indent indent
         2: .line 199
            aload 0 /* this */
            aload 1 /* block */
            invokedynamic visitValue(Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/InstructionValueConsumer;
              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:
                  (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
                  org/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization.lambda$5(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V (7)
                  (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
            astore 5 /* loadConsumer */
        start local 5 // org.graalvm.compiler.lir.InstructionValueConsumer loadConsumer
         3: .line 227
            aload 0 /* this */
            aload 1 /* block */
            invokedynamic visitValue(Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/InstructionValueConsumer;
              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:
                  (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
                  org/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization.lambda$6(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V (7)
                  (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
            astore 6 /* useConsumer */
        start local 6 // org.graalvm.compiler.lir.InstructionValueConsumer useConsumer
         4: .line 240
            iconst_0
            istore 7 /* opId */
        start local 7 // int opId
         5: .line 241
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 9
            goto 11
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer int top java.util.Iterator
      StackMap stack:
         6: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 8 /* inst */
        start local 8 // org.graalvm.compiler.lir.LIRInstruction inst
         7: .line 243
            aload 8 /* inst */
            iload 7 /* opId */
            iinc 7 /* opId */ 1
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.setId:(I)V
         8: .line 244
            aload 8 /* inst */
            aload 5 /* loadConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachOutput:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
         9: .line 245
            aload 8 /* inst */
            aload 6 /* useConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachInput:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
        10: .line 246
            aload 8 /* inst */
            aload 6 /* useConsumer */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachAlive:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
        end local 8 // org.graalvm.compiler.lir.LIRInstruction inst
        11: .line 241
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 7 // int opId
        end local 6 // org.graalvm.compiler.lir.InstructionValueConsumer useConsumer
        end local 5 // org.graalvm.compiler.lir.InstructionValueConsumer loadConsumer
        12: .line 249
            aload 4 /* indent */
            ifnull 18
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 18
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        13: astore 2
            aload 4 /* indent */
            ifnull 14
            aload 4 /* indent */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 4 // org.graalvm.compiler.debug.Indent indent
      StackMap locals:
      StackMap stack:
        14: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 3
            aload 2
            ifnonnull 16
            aload 3
            astore 2
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 2
            aload 3
            if_acmpeq 17
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        17: aload 2
            athrow
        18: .line 250
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0   19     1         block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            2   14     4        indent  Lorg/graalvm/compiler/debug/Indent;
            3   12     5  loadConsumer  Lorg/graalvm/compiler/lir/InstructionValueConsumer;
            4   12     6   useConsumer  Lorg/graalvm/compiler/lir/InstructionValueConsumer;
            5   12     7          opId  I
            7   11     8          inst  Lorg/graalvm/compiler/lir/LIRInstruction;
      Exception table:
        from    to  target  type
           2    12      13  any
           1    15      15  any
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
       Name  Flags
      block  

  private void createConstantTree(org.graalvm.compiler.lir.constopt.DefUseTree);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
         0: .line 257
            new org.graalvm.compiler.lir.constopt.ConstantTree
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
            aload 1 /* tree */
            invokespecial org.graalvm.compiler.lir.constopt.ConstantTree.<init>:(Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
            astore 2 /* constTree */
        start local 2 // org.graalvm.compiler.lir.constopt.ConstantTree constTree
         1: .line 258
            aload 2 /* constTree */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.set:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
         2: .line 259
            aload 1 /* tree */
            aload 2 /* constTree */
            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/ConstantLoadOptimization$Optimization.lambda$7(Lorg/graalvm/compiler/lir/constopt/ConstantTree;Lorg/graalvm/compiler/lir/constopt/UseEntry;)V (6)
                  (Lorg/graalvm/compiler/lir/constopt/UseEntry;)V
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.forEach:(Ljava/util/function/Consumer;)V
         3: .line 261
            aload 2 /* constTree */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.USAGE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()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
            ifeq 6
         4: .line 263
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.usageAtDefinitionSkipped:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         5: .line 264
            return
         6: .line 267
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree
      StackMap stack:
            aload 2 /* constTree */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.markBlocks:()V
         7: .line 269
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            aload 2 /* constTree */
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokestatic org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.analyze:(Lorg/graalvm/compiler/debug/DebugContext;Lorg/graalvm/compiler/lir/constopt/ConstantTree;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
            astore 3 /* cost */
        start local 3 // org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost cost
         8: .line 270
            aload 3 /* cost */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getUsages:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 4 /* usageCount */
        start local 4 // int usageCount
         9: .line 271
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
            ifne 10
            iload 4 /* usageCount */
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.usageCount:()I
            if_icmpeq 10
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Usage count differs: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* usageCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " vs. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.usageCount:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        10: .line 273
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost int
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 20
        11: .line 274
            aconst_null
            astore 5
            aconst_null
            astore 6
        12: aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Variable: %s, Block: %s, freq.: %f"
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getVariable:()Lorg/graalvm/compiler/lir/Variable;
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getRelativeFrequency:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 7 /* i */
        start local 7 // org.graalvm.compiler.debug.Indent i
        13: .line 275
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Usages result: %s"
            aload 3 /* cost */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 276
            aload 7 /* i */
            ifnull 20
            aload 7 /* i */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 20
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.lir.constopt.DefUseTree org.graalvm.compiler.lir.constopt.ConstantTree org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        15: astore 5
            aload 7 /* i */
            ifnull 16
            aload 7 /* i */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 7 // org.graalvm.compiler.debug.Indent i
      StackMap locals:
      StackMap stack:
        16: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: astore 6
            aload 5
            ifnonnull 18
            aload 6
            astore 5
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 5
            aload 6
            if_acmpeq 19
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        19: aload 5
            athrow
        20: .line 280
      StackMap locals:
      StackMap stack:
            aload 3 /* cost */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getNumMaterializations:()I
            iconst_1
            if_icmpgt 21
            aload 3 /* cost */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getBestCost:()D
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getRelativeFrequency:()D
            dcmpg
            ifge 40
        21: .line 281
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5
            aconst_null
            astore 6
        22: aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "CLOmodify"
            aload 2 /* constTree */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 7 /* s */
        start local 7 // org.graalvm.compiler.debug.DebugContext$Scope s
        23: aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Replacing %s = %s"
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getVariable:()Lorg/graalvm/compiler/lir/Variable;
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getConstant:()Ljdk/vm/ci/meta/Constant;
            invokeinterface jdk.vm.ci.meta.Constant.toValueString:()Ljava/lang/String;
            invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
            astore 8 /* i */
        start local 8 // org.graalvm.compiler.debug.Indent i
        24: .line 283
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.deleteInstruction:(Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
        25: .line 284
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.constantsOptimized:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
        26: .line 287
            aload 0 /* this */
            aload 1 /* tree */
            aload 2 /* constTree */
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.createLoads:(Lorg/graalvm/compiler/lir/constopt/DefUseTree;Lorg/graalvm/compiler/lir/constopt/ConstantTree;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
        27: .line 289
            aload 8 /* i */
            ifnull 30
            aload 8 /* i */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
            goto 30
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.lir.constopt.DefUseTree org.graalvm.compiler.lir.constopt.ConstantTree org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.debug.Indent
      StackMap stack: java.lang.Throwable
        28: astore 5
            aload 8 /* i */
            ifnull 29
            aload 8 /* i */
            invokeinterface org.graalvm.compiler.debug.Indent.close:()V
        end local 8 // org.graalvm.compiler.debug.Indent i
      StackMap locals:
      StackMap stack:
        29: aload 5
            athrow
      StackMap locals:
      StackMap stack:
        30: aload 7 /* s */
            ifnull 41
            aload 7 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 6
            aload 5
            ifnonnull 32
            aload 6
            astore 5
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 5
            aload 6
            if_acmpeq 33
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        33: aload 7 /* s */
            ifnull 34
            aload 7 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 7 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        34: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 6
            aload 5
            ifnonnull 36
            aload 6
            astore 5
            goto 37
      StackMap locals:
      StackMap stack:
        36: aload 5
            aload 6
            if_acmpeq 37
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        37: aload 5
            athrow
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.lir.constopt.DefUseTree org.graalvm.compiler.lir.constopt.ConstantTree org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost int
      StackMap stack: java.lang.Throwable
        38: astore 5 /* e */
        start local 5 // java.lang.Throwable e
        39: .line 290
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            aload 5 /* e */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.Throwable e
        40: .line 294
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.materializeAtDefinitionSkipped:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
        41: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            iconst_4
            aload 2 /* constTree */
            ldc "ConstantTree for %s"
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getVariable:()Lorg/graalvm/compiler/lir/Variable;
            invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
        42: .line 297
            return
        end local 4 // int usageCount
        end local 3 // org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost cost
        end local 2 // org.graalvm.compiler.lir.constopt.ConstantTree constTree
        end local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0   43     1        tree  Lorg/graalvm/compiler/lir/constopt/DefUseTree;
            1   43     2   constTree  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            8   43     3        cost  Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
            9   43     4  usageCount  I
           13   16     7           i  Lorg/graalvm/compiler/debug/Indent;
           23   34     7           s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           24   29     8           i  Lorg/graalvm/compiler/debug/Indent;
           39   40     5           e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          13    14      15  any
          12    17      17  any
          24    27      28  any
          23    30      31  any
          22    35      35  any
          21    38      38  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      tree  

  private void createLoads(org.graalvm.compiler.lir.constopt.DefUseTree, org.graalvm.compiler.lir.constopt.ConstantTree, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/DefUseTree;Lorg/graalvm/compiler/lir/constopt/ConstantTree;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
        start local 2 // org.graalvm.compiler.lir.constopt.ConstantTree constTree
        start local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase startBlock
         0: .line 300
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 4 /* worklist */
        start local 4 // java.util.Deque worklist
         1: .line 301
            aload 4 /* worklist */
            aload 3 /* startBlock */
            invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
            pop
         2: .line 302
            goto 14
         3: .line 303
      StackMap locals: java.util.Deque
      StackMap stack:
            aload 4 /* worklist */
            invokeinterface java.util.Deque.pollLast:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.cfg.AbstractBlockBase
            astore 5 /* block */
        start local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         4: .line 304
            aload 2 /* constTree */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.CANDIDATE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.get:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 8
         5: .line 305
            aload 2 /* constTree */
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.MATERIALIZE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.set:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
         6: .line 307
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getConstant:()Ljdk/vm/ci/meta/Constant;
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getVariable:()Lorg/graalvm/compiler/lir/Variable;
            invokevirtual org.graalvm.compiler.lir.Variable.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
            aload 5 /* block */
            aload 2 /* constTree */
            aload 5 /* 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
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getUsages:()Ljava/util/List;
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.insertLoad:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ValueKind;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/List;)V
         7: .line 308
            goto 14
         8: .line 309
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            aload 5 /* block */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getFirstDominated:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 6 /* dominated */
        start local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase dominated
         9: .line 310
            goto 13
        10: .line 311
      StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase
      StackMap stack:
            aload 2 /* constTree */
            aload 6 /* dominated */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.isMarked:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
            ifeq 12
        11: .line 312
            aload 4 /* worklist */
            aload 6 /* dominated */
            invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
        12: .line 314
      StackMap locals:
      StackMap stack:
            aload 6 /* dominated */
            invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominatedSibling:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 6 /* dominated */
        13: .line 310
      StackMap locals:
      StackMap stack:
            aload 6 /* dominated */
            ifnonnull 10
        end local 6 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase dominated
        end local 5 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        14: .line 302
      StackMap locals:
      StackMap stack:
            aload 4 /* worklist */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 3
        15: .line 318
            return
        end local 4 // java.util.Deque worklist
        end local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase startBlock
        end local 2 // org.graalvm.compiler.lir.constopt.ConstantTree constTree
        end local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0   16     1        tree  Lorg/graalvm/compiler/lir/constopt/DefUseTree;
            0   16     2   constTree  Lorg/graalvm/compiler/lir/constopt/ConstantTree;
            0   16     3  startBlock  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1   16     4    worklist  Ljava/util/Deque<Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;>;
            4   14     5       block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            9   14     6   dominated  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
    Signature: (Lorg/graalvm/compiler/lir/constopt/DefUseTree;Lorg/graalvm/compiler/lir/constopt/ConstantTree;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
            Name  Flags
      tree        
      constTree   
      startBlock  

  private void insertLoad(jdk.vm.ci.meta.Constant, jdk.vm.ci.meta.ValueKind<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, java.util.List<org.graalvm.compiler.lir.constopt.UseEntry>);
    descriptor: (Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ValueKind;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // jdk.vm.ci.meta.Constant constant
        start local 2 // jdk.vm.ci.meta.ValueKind kind
        start local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        start local 4 // java.util.List usages
         0: .line 321
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
            ifne 2
            aload 4 /* usages */
            ifnull 1
            aload 4 /* usages */
            invokeinterface java.util.List.size:()I
            ifgt 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            ldc "No usages %s %s %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* constant */
            aastore
            dup
            iconst_1
            aload 3 /* block */
            aastore
            dup
            iconst_2
            aload 4 /* usages */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lirGen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 2 /* kind */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            astore 5 /* variable */
        start local 5 // org.graalvm.compiler.lir.Variable variable
         3: .line 325
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lirGen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getSpillMoveFactory:()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
            aload 5 /* variable */
            aload 1 /* constant */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory.createLoad:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/lir/LIRInstruction;
            astore 6 /* move */
        start local 6 // org.graalvm.compiler.lir.LIRInstruction move
         4: .line 327
            aload 0 /* this */
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.getInsertionBuffer:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/LIRInsertionBuffer;
            iconst_1
            aload 6 /* move */
            invokevirtual org.graalvm.compiler.lir.LIRInsertionBuffer.append:(ILorg/graalvm/compiler/lir/LIRInstruction;)V
         5: .line 328
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "new move (%s) and inserted in block %s"
            aload 6 /* move */
            aload 3 /* block */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 330
            aload 4 /* usages */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 10
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization jdk.vm.ci.meta.Constant jdk.vm.ci.meta.ValueKind org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List org.graalvm.compiler.lir.Variable org.graalvm.compiler.lir.LIRInstruction top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.constopt.UseEntry
            astore 7 /* u */
        start local 7 // org.graalvm.compiler.lir.constopt.UseEntry u
         8: .line 331
            aload 7 /* u */
            aload 5 /* variable */
            invokevirtual org.graalvm.compiler.lir.constopt.UseEntry.setValue:(Ljdk/vm/ci/meta/Value;)V
         9: .line 332
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "patched instruction %s"
            aload 7 /* u */
            invokevirtual org.graalvm.compiler.lir.constopt.UseEntry.getInstruction:()Lorg/graalvm/compiler/lir/LIRInstruction;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 7 // org.graalvm.compiler.lir.constopt.UseEntry u
        10: .line 330
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 334
            return
        end local 6 // org.graalvm.compiler.lir.LIRInstruction move
        end local 5 // org.graalvm.compiler.lir.Variable variable
        end local 4 // java.util.List usages
        end local 3 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 2 // jdk.vm.ci.meta.ValueKind kind
        end local 1 // jdk.vm.ci.meta.Constant constant
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0   12     1  constant  Ljdk/vm/ci/meta/Constant;
            0   12     2      kind  Ljdk/vm/ci/meta/ValueKind<*>;
            0   12     3     block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            0   12     4    usages  Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;
            3   12     5  variable  Lorg/graalvm/compiler/lir/Variable;
            4   12     6      move  Lorg/graalvm/compiler/lir/LIRInstruction;
            8   10     7         u  Lorg/graalvm/compiler/lir/constopt/UseEntry;
    Signature: (Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ValueKind<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;)V
    MethodParameters:
          Name  Flags
      constant  
      kind      
      block     
      usages    

  private void rewriteBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 342
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.insertionBuffers: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 org.graalvm.compiler.lir.LIRInsertionBuffer
            astore 2 /* buffer */
        start local 2 // org.graalvm.compiler.lir.LIRInsertionBuffer buffer
         1: .line 343
            aload 2 /* buffer */
            ifnull 4
         2: .line 344
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
            ifne 3
            aload 2 /* buffer */
            invokevirtual org.graalvm.compiler.lir.LIRInsertionBuffer.initialized:()Z
            ifne 3
            new java.lang.AssertionError
            dup
            ldc "not initialized?"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 345
      StackMap locals: org.graalvm.compiler.lir.LIRInsertionBuffer
      StackMap stack:
            aload 2 /* buffer */
            invokevirtual org.graalvm.compiler.lir.LIRInsertionBuffer.finish:()V
         4: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            astore 3 /* instructions */
        start local 3 // java.util.ArrayList instructions
         5: .line 350
            iconst_0
            istore 4 /* hasDead */
        start local 4 // boolean hasDead
         6: .line 351
            aload 3 /* instructions */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6
            goto 12
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.LIRInsertionBuffer java.util.ArrayList int top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.LIRInstruction
            astore 5 /* inst */
        start local 5 // org.graalvm.compiler.lir.LIRInstruction inst
         8: .line 352
            aload 5 /* inst */
            ifnonnull 11
         9: .line 353
            iconst_1
            istore 4 /* hasDead */
        10: .line 354
            goto 12
        11: .line 355
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.LIRInsertionBuffer java.util.ArrayList int org.graalvm.compiler.lir.LIRInstruction java.util.Iterator
      StackMap stack:
            aload 5 /* inst */
            iconst_m1
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.setId:(I)V
        end local 5 // org.graalvm.compiler.lir.LIRInstruction inst
        12: .line 351
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.LIRInsertionBuffer java.util.ArrayList int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 358
            iload 4 /* hasDead */
            ifeq 15
        14: .line 360
            aload 3 /* instructions */
            aconst_null
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual java.util.ArrayList.removeAll:(Ljava/util/Collection;)Z
            pop
        15: .line 362
      StackMap locals: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.LIRInsertionBuffer java.util.ArrayList int
      StackMap stack:
            return
        end local 4 // boolean hasDead
        end local 3 // java.util.ArrayList instructions
        end local 2 // org.graalvm.compiler.lir.LIRInsertionBuffer buffer
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0   16     1         block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1   16     2        buffer  Lorg/graalvm/compiler/lir/LIRInsertionBuffer;
            5   16     3  instructions  Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
            6   16     4       hasDead  Z
            8   12     5          inst  Lorg/graalvm/compiler/lir/LIRInstruction;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
    MethodParameters:
       Name  Flags
      block  

  private void deleteInstruction(org.graalvm.compiler.lir.constopt.DefUseTree);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
         0: .line 365
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            astore 2 /* block */
        start local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         1: .line 366
            aload 1 /* tree */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getInstruction:()Lorg/graalvm/compiler/lir/LIRInstruction;
            astore 3 /* instruction */
        start local 3 // org.graalvm.compiler.lir.LIRInstruction instruction
         2: .line 367
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "deleting instruction %s from block %s"
            aload 3 /* instruction */
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 368
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            aload 2 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            aload 3 /* instruction */
            invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
            aconst_null
            invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 369
            return
        end local 3 // org.graalvm.compiler.lir.LIRInstruction instruction
        end local 2 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0    5     1         tree  Lorg/graalvm/compiler/lir/constopt/DefUseTree;
            1    5     2        block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            2    5     3  instruction  Lorg/graalvm/compiler/lir/LIRInstruction;
    MethodParameters:
      Name  Flags
      tree  

  private org.graalvm.compiler.lir.LIRInsertionBuffer getInsertionBuffer(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/LIRInsertionBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
         0: .line 372
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.insertionBuffers: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 org.graalvm.compiler.lir.LIRInsertionBuffer
            astore 2 /* insertionBuffer */
        start local 2 // org.graalvm.compiler.lir.LIRInsertionBuffer insertionBuffer
         1: .line 373
            aload 2 /* insertionBuffer */
            ifnonnull 7
         2: .line 374
            new org.graalvm.compiler.lir.LIRInsertionBuffer
            dup
            invokespecial org.graalvm.compiler.lir.LIRInsertionBuffer.<init>:()V
            astore 2 /* insertionBuffer */
         3: .line 375
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.insertionBuffers:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
            aload 1 /* block */
            aload 2 /* insertionBuffer */
            invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
         4: .line 376
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
            ifne 5
            aload 2 /* insertionBuffer */
            invokevirtual org.graalvm.compiler.lir.LIRInsertionBuffer.initialized:()Z
            ifeq 5
            new java.lang.AssertionError
            dup
            ldc "already initialized?"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 377
      StackMap locals: org.graalvm.compiler.lir.LIRInsertionBuffer
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
            aload 1 /* block */
            invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
            astore 3 /* instructions */
        start local 3 // java.util.ArrayList instructions
         6: .line 378
            aload 2 /* insertionBuffer */
            aload 3 /* instructions */
            invokevirtual org.graalvm.compiler.lir.LIRInsertionBuffer.init:(Ljava/util/List;)V
        end local 3 // java.util.ArrayList instructions
         7: .line 380
      StackMap locals:
      StackMap stack:
            aload 2 /* insertionBuffer */
            areturn
        end local 2 // org.graalvm.compiler.lir.LIRInsertionBuffer insertionBuffer
        end local 1 // org.graalvm.compiler.core.common.cfg.AbstractBlockBase block
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0    8     1            block  Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
            1    8     2  insertionBuffer  Lorg/graalvm/compiler/lir/LIRInsertionBuffer;
            6    7     3     instructions  Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Lorg/graalvm/compiler/lir/LIRInsertionBuffer;
    MethodParameters:
       Name  Flags
      block  

  private boolean lambda$0(org.graalvm.compiler.lir.constopt.DefUseTree);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.lir.constopt.DefUseTree t
         0: .line 124
            aload 1 /* t */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.usageCount:()I
            iconst_1
            if_icmple 2
         1: .line 125
            iconst_1
            ireturn
         2: .line 127
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.singleUsageConstantsSkipped:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         3: .line 128
            iconst_0
            ireturn
        end local 1 // org.graalvm.compiler.lir.constopt.DefUseTree t
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0    4     1     t  Lorg/graalvm/compiler/lir/constopt/DefUseTree;

  private void lambda$1(org.graalvm.compiler.lir.constopt.DefUseTree);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
         0: .line 132
            aload 1 /* tree */
            aload 0 /* this */
            invokedynamic accept(Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;)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/ConstantLoadOptimization$Optimization.addUsageToBlockMap(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
            return
        end local 1 // org.graalvm.compiler.lir.constopt.DefUseTree tree
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0    1     1  tree  Lorg/graalvm/compiler/lir/constopt/DefUseTree;

  private void lambda$5(org.graalvm.compiler.core.common.cfg.AbstractBlockBase, org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.Value, org.graalvm.compiler.lir.LIRInstruction$OperandMode, java.util.EnumSet);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 2 // org.graalvm.compiler.lir.LIRInstruction instruction
        start local 3 // jdk.vm.ci.meta.Value value
        start local 4 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        start local 5 // java.util.EnumSet flags
         0: .line 200
            aload 3 /* value */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 17
         1: .line 201
            aload 3 /* value */
            checkcast org.graalvm.compiler.lir.Variable
            astore 6 /* var */
        start local 6 // org.graalvm.compiler.lir.Variable var
         2: .line 203
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.phiConstants:Ljava/util/BitSet;
            aload 6 /* var */
            getfield org.graalvm.compiler.lir.Variable.index:I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 16
         3: .line 204
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.defined:Ljava/util/BitSet;
            aload 6 /* var */
            getfield org.graalvm.compiler.lir.Variable.index:I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 10
         4: .line 205
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.defined:Ljava/util/BitSet;
            aload 6 /* var */
            getfield org.graalvm.compiler.lir.Variable.index:I
            invokevirtual java.util.BitSet.set:(I)V
         5: .line 206
            aload 2 /* instruction */
            invokestatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.isConstantLoad:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
            ifeq 17
         6: .line 207
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "constant load: %s"
            aload 2 /* instruction */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 208
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
            aload 6 /* var */
            new org.graalvm.compiler.lir.constopt.DefUseTree
            dup
            aload 2 /* instruction */
            aload 1
            invokespecial org.graalvm.compiler.lir.constopt.DefUseTree.<init>:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
            invokevirtual org.graalvm.compiler.lir.constopt.VariableMap.put:(Lorg/graalvm/compiler/lir/Variable;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 209
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.constantsTotal:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
         9: .line 211
            goto 17
        10: .line 214
      StackMap locals: org.graalvm.compiler.lir.Variable
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
            aload 6 /* var */
            invokevirtual org.graalvm.compiler.lir.constopt.VariableMap.remove:(Lorg/graalvm/compiler/lir/Variable;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.constopt.DefUseTree
            astore 7 /* removed */
        start local 7 // org.graalvm.compiler.lir.constopt.DefUseTree removed
        11: .line 215
            aload 7 /* removed */
            ifnull 13
        12: .line 216
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.phiConstantsSkipped:Lorg/graalvm/compiler/debug/CounterKey;
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
        13: .line 218
      StackMap locals: org.graalvm.compiler.lir.constopt.DefUseTree
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.phiConstants:Ljava/util/BitSet;
            aload 6 /* var */
            getfield org.graalvm.compiler.lir.Variable.index:I
            invokevirtual java.util.BitSet.set:(I)V
        14: .line 219
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            iconst_3
            ldc "Removing phi variable: %s"
            aload 6 /* var */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;)V
        end local 7 // org.graalvm.compiler.lir.constopt.DefUseTree removed
        15: .line 221
            goto 17
        16: .line 222
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
            ifne 17
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.defined:Ljava/util/BitSet;
            aload 6 /* var */
            getfield org.graalvm.compiler.lir.Variable.index:I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 17
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "phi but not defined? "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* var */
            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
        end local 6 // org.graalvm.compiler.lir.Variable var
        17: .line 225
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.util.EnumSet flags
        end local 4 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 3 // jdk.vm.ci.meta.Value value
        end local 2 // org.graalvm.compiler.lir.LIRInstruction instruction
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0   18     2  instruction  Lorg/graalvm/compiler/lir/LIRInstruction;
            0   18     3        value  Ljdk/vm/ci/meta/Value;
            0   18     4         mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            0   18     5        flags  Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;
            2   17     6          var  Lorg/graalvm/compiler/lir/Variable;
           11   15     7      removed  Lorg/graalvm/compiler/lir/constopt/DefUseTree;

  private void lambda$6(org.graalvm.compiler.core.common.cfg.AbstractBlockBase, org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.Value, org.graalvm.compiler.lir.LIRInstruction$OperandMode, java.util.EnumSet);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=8, args_size=6
        start local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
        start local 2 // org.graalvm.compiler.lir.LIRInstruction instruction
        start local 3 // jdk.vm.ci.meta.Value value
        start local 4 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        start local 5 // java.util.EnumSet flags
         0: .line 228
            aload 3 /* value */
            invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
            ifeq 7
         1: .line 229
            aload 3 /* value */
            checkcast org.graalvm.compiler.lir.Variable
            astore 6 /* var */
        start local 6 // org.graalvm.compiler.lir.Variable var
         2: .line 230
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.phiConstants:Ljava/util/BitSet;
            aload 6 /* var */
            getfield org.graalvm.compiler.lir.Variable.index:I
            invokevirtual java.util.BitSet.get:(I)Z
            ifne 7
         3: .line 231
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
            aload 6 /* var */
            invokevirtual org.graalvm.compiler.lir.constopt.VariableMap.get:(Lorg/graalvm/compiler/lir/Variable;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.constopt.DefUseTree
            astore 7 /* tree */
        start local 7 // org.graalvm.compiler.lir.constopt.DefUseTree tree
         4: .line 232
            aload 7 /* tree */
            ifnull 7
         5: .line 233
            aload 7 /* tree */
            aload 1
            aload 2 /* instruction */
            aload 3 /* value */
            invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.addUsage:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;)V
         6: .line 234
            aload 0 /* this */
            getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
            ldc "usage of %s : %s"
            aload 6 /* var */
            aload 2 /* instruction */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 7 // org.graalvm.compiler.lir.constopt.DefUseTree tree
        end local 6 // org.graalvm.compiler.lir.Variable var
         7: .line 238
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.util.EnumSet flags
        end local 4 // org.graalvm.compiler.lir.LIRInstruction$OperandMode mode
        end local 3 // jdk.vm.ci.meta.Value value
        end local 2 // org.graalvm.compiler.lir.LIRInstruction instruction
        end local 0 // org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
            0    8     2  instruction  Lorg/graalvm/compiler/lir/LIRInstruction;
            0    8     3        value  Ljdk/vm/ci/meta/Value;
            0    8     4         mode  Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
            0    8     5        flags  Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;
            2    7     6          var  Lorg/graalvm/compiler/lir/Variable;
            4    7     7         tree  Lorg/graalvm/compiler/lir/constopt/DefUseTree;

  private static void lambda$7(org.graalvm.compiler.lir.constopt.ConstantTree, org.graalvm.compiler.lir.constopt.UseEntry);
    descriptor: (Lorg/graalvm/compiler/lir/constopt/ConstantTree;Lorg/graalvm/compiler/lir/constopt/UseEntry;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // org.graalvm.compiler.lir.constopt.UseEntry u
         0: .line 259
            aload 0
            getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.USAGE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
            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.set:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
            return
        end local 1 // org.graalvm.compiler.lir.constopt.UseEntry u
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     u  Lorg/graalvm/compiler/lir/constopt/UseEntry;
}
SourceFile: "ConstantLoadOptimization.java"
NestHost: org.graalvm.compiler.lir.constopt.ConstantLoadOptimization
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 final OperandFlag = org.graalvm.compiler.lir.LIRInstruction$OperandFlag of org.graalvm.compiler.lir.LIRInstruction
  public final OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction
  public abstract LoadConstantOp = org.graalvm.compiler.lir.StandardOp$LoadConstantOp of org.graalvm.compiler.lir.StandardOp
  private final Optimization = org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization of org.graalvm.compiler.lir.constopt.ConstantLoadOptimization
  org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization$1
  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
  public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool