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: 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 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
2: aload 0
aload 1
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: aload 0
aload 2
putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lirGen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
4: aload 0
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: aload 0
new java.util.BitSet
dup
invokespecial java.util.BitSet.<init>:()V
putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.phiConstants:Ljava/util/BitSet;
6: aload 0
new java.util.BitSet
dup
invokespecial java.util.BitSet.<init>:()V
putfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.defined:Ljava/util/BitSet;
7: aload 0
new org.graalvm.compiler.core.common.cfg.BlockMap
dup
aload 1
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: aload 0
new org.graalvm.compiler.core.common.cfg.BlockMap
dup
aload 1
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: return
end local 2 end local 1 end local 0 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 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
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
start local 3 2: aconst_null
astore 4
aconst_null
astore 5
3: aload 0
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
start local 6 4: aload 0
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
start local 7 6: aload 0
aload 7
invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.analyzeBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
end local 7 7: iinc 8 1
StackMap locals:
StackMap stack:
8: iload 8
iload 9
if_icmplt 5
9: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
aload 0
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: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
aload 0
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: aload 6
ifnull 19
aload 6
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
ifnull 13
aload 6
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 6 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
start local 4 18: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 4
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 4 19: StackMap locals:
StackMap stack:
aconst_null
astore 4
aconst_null
astore 5
20: aload 0
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
start local 6 21: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
aload 0
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: aload 0
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
start local 8 24: aload 0
aload 8
invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.rewriteBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
end local 8 25: iinc 9 1
StackMap locals:
StackMap stack:
26: iload 9
iload 10
if_icmplt 23
27: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
ifne 28
aload 0
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: 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
ifnull 36
aload 6
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 36
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 4
aload 6
ifnull 30
aload 6
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 6 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
start local 4 35: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 4
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 4 36: StackMap locals:
StackMap stack:
aload 3
ifnull 42
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 42
StackMap locals:
StackMap stack: java.lang.Throwable
37: astore 1
aload 3
ifnull 38
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 3 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: StackMap locals:
StackMap stack:
return
end local 0 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 0: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
aload 0
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: iconst_1
ireturn
end local 0 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 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getVariable:()Lorg/graalvm/compiler/lir/Variable;
astore 2
start local 2 1: new org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization$1
dup
aload 0
aload 2
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
start local 3 2: aload 0
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
start local 4 4: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
aload 4
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
start local 8 6: aload 8
aload 3
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachState:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
end local 8 7: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 4 8: 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: return
end local 3 end local 2 end local 1 end local 0 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 0: aload 0
invokestatic org.graalvm.compiler.lir.StandardOp$LoadConstantOp.isLoadConstantOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
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 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 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.constopt.UseEntry.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 2
start local 2 1: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 2
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
start local 3 2: aload 3
ifnonnull 5
3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
4: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.blockMap:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 2
aload 3
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
5: StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List
StackMap stack:
aload 3
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: return
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Block: %s"
aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
astore 4
start local 4 2: aload 0
aload 1
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
start local 5 3: aload 0
aload 1
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
start local 6 4: iconst_0
istore 7
start local 7 5: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
aload 1
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
start local 8 7: aload 8
iload 7
iinc 7 1
invokevirtual org.graalvm.compiler.lir.LIRInstruction.setId:(I)V
8: aload 8
aload 5
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachOutput:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
9: aload 8
aload 6
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachInput:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
10: aload 8
aload 6
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachAlive:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
end local 8 11: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 7 end local 6 end local 5 12: aload 4
ifnull 18
aload 4
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
ifnull 14
aload 4
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 4 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: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 0: new org.graalvm.compiler.lir.constopt.ConstantTree
dup
aload 0
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
invokespecial org.graalvm.compiler.lir.constopt.ConstantTree.<init>:(Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
astore 2
start local 2 1: aload 2
getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.SUBTREE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
aload 1
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: aload 1
aload 2
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: aload 2
getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.USAGE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
aload 1
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: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.usageAtDefinitionSkipped:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
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: return
6: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.markBlocks:()V
7: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 2
aload 1
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
start local 3 8: aload 3
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getUsages:()Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 4
start local 4 9: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
ifne 10
iload 4
aload 1
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
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " vs. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
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: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost int
StackMap stack:
aload 0
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: aconst_null
astore 5
aconst_null
astore 6
12: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Variable: %s, Block: %s, freq.: %f"
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getVariable:()Lorg/graalvm/compiler/lir/Variable;
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
aload 1
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
start local 7 13: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Usages result: %s"
aload 3
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
14: aload 7
ifnull 20
aload 7
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
ifnull 16
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 7 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: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getNumMaterializations:()I
iconst_1
if_icmpgt 21
aload 3
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getBestCost:()D
aload 1
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 42
21: StackMap locals:
StackMap stack:
aconst_null
astore 5
aconst_null
astore 6
22: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "CLOmodify"
aload 2
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 7
start local 7 23: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 24
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Replacing %s = %s"
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getVariable:()Lorg/graalvm/compiler/lir/Variable;
aload 1
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;
goto 25
StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack:
24: aconst_null
StackMap locals:
StackMap stack: org.graalvm.compiler.debug.Indent
25: astore 8
start local 8 26: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.deleteInstruction:(Lorg/graalvm/compiler/lir/constopt/DefUseTree;)V
27: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.constantsOptimized:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
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
28: aload 0
aload 1
aload 2
aload 1
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
29: aload 8
ifnull 32
aload 8
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 32
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
30: astore 5
aload 8
ifnull 31
aload 8
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 8 StackMap locals:
StackMap stack:
31: aload 5
athrow
StackMap locals:
StackMap stack:
32: aload 7
ifnull 43
aload 7
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 43
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 6
aload 5
ifnonnull 34
aload 6
astore 5
goto 35
StackMap locals:
StackMap stack:
34: aload 5
aload 6
if_acmpeq 35
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
35: aload 7
ifnull 36
aload 7
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 7 StackMap locals:
StackMap stack:
36: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
37: astore 6
aload 5
ifnonnull 38
aload 6
astore 5
goto 39
StackMap locals:
StackMap stack:
38: aload 5
aload 6
if_acmpeq 39
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
39: 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
40: astore 5
start local 5 41: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 5
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 5 42: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.materializeAtDefinitionSkipped:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
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
43: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_4
aload 2
ldc "ConstantTree for %s"
aload 1
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
44: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/graalvm/compiler/lir/constopt/ConstantLoadOptimization$Optimization;
0 45 1 tree Lorg/graalvm/compiler/lir/constopt/DefUseTree;
1 45 2 constTree Lorg/graalvm/compiler/lir/constopt/ConstantTree;
8 45 3 cost Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
9 45 4 usageCount I
13 16 7 i Lorg/graalvm/compiler/debug/Indent;
23 36 7 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
26 31 8 i Lorg/graalvm/compiler/debug/Indent;
41 42 5 e Ljava/lang/Throwable;
Exception table:
from to target type
13 14 15 any
12 17 17 any
26 29 30 any
23 32 33 any
22 37 37 any
21 40 40 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 start local 1 start local 2 start local 3 0: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 4
start local 4 1: aload 4
aload 3
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
2: goto 14
3: StackMap locals: java.util.Deque
StackMap stack:
aload 4
invokeinterface java.util.Deque.pollLast:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.cfg.AbstractBlockBase
astore 5
start local 5 4: aload 2
getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.CANDIDATE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
aload 5
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.get:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 8
5: aload 2
getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.MATERIALIZE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
aload 5
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.set:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
6: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getConstant:()Ljdk/vm/ci/meta/Constant;
aload 1
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
aload 2
aload 5
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: goto 14
8: StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase
StackMap stack:
aload 5
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getFirstDominated:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 6
start local 6 9: goto 13
10: StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase
StackMap stack:
aload 2
aload 6
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.isMarked:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 12
11: aload 4
aload 6
invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
12: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominatedSibling:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 6
13: StackMap locals:
StackMap stack:
aload 6
ifnonnull 10
end local 6 end local 5 14: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 3
15: return
end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 start local 2 start local 3 start local 4 0: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
ifne 2
aload 4
ifnull 1
aload 4
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
aastore
dup
iconst_1
aload 3
aastore
dup
iconst_2
aload 4
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: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lirGen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
aload 2
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
astore 5
start local 5 3: aload 0
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
aload 1
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
start local 6 4: aload 0
aload 3
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
invokevirtual org.graalvm.compiler.lir.LIRInsertionBuffer.append:(ILorg/graalvm/compiler/lir/LIRInstruction;)V
5: aload 0
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
aload 3
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
6: aload 4
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
start local 7 8: aload 7
aload 5
invokevirtual org.graalvm.compiler.lir.constopt.UseEntry.setValue:(Ljdk/vm/ci/meta/Value;)V
9: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "patched instruction %s"
aload 7
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 10: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
11: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.insertionBuffers:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 1
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
start local 2 1: aload 2
ifnull 4
2: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
ifne 3
aload 2
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: StackMap locals: org.graalvm.compiler.lir.LIRInsertionBuffer
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.lir.LIRInsertionBuffer.finish:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 3
start local 3 5: iconst_0
istore 4
start local 4 6: aload 3
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
start local 5 8: aload 5
ifnonnull 11
9: iconst_1
istore 4
10: goto 12
11: 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
iconst_m1
invokevirtual org.graalvm.compiler.lir.LIRInstruction.setId:(I)V
end local 5 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:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
13: iload 4
ifeq 15
14: aload 3
aconst_null
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
invokevirtual java.util.ArrayList.removeAll:(Ljava/util/Collection;)Z
pop
15: 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 end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getBlock:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 2
start local 2 1: aload 1
invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.getInstruction:()Lorg/graalvm/compiler/lir/LIRInstruction;
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "deleting instruction %s from block %s"
aload 3
aload 2
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
3: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
aload 2
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
aload 3
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
aconst_null
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
4: return
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.insertionBuffers:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 1
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
start local 2 1: aload 2
ifnonnull 7
2: new org.graalvm.compiler.lir.LIRInsertionBuffer
dup
invokespecial org.graalvm.compiler.lir.LIRInsertionBuffer.<init>:()V
astore 2
3: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.insertionBuffers:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 1
aload 2
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
4: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
ifne 5
aload 2
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: StackMap locals: org.graalvm.compiler.lir.LIRInsertionBuffer
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.lir:Lorg/graalvm/compiler/lir/LIR;
aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 3
start local 3 6: aload 2
aload 3
invokevirtual org.graalvm.compiler.lir.LIRInsertionBuffer.init:(Ljava/util/List;)V
end local 3 7: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 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 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.constopt.DefUseTree.usageCount:()I
iconst_1
if_icmple 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.singleUsageConstantsSkipped:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
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: iconst_0
ireturn
end local 1 end local 0 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 start local 1 0: aload 1
aload 0
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 end local 0 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 start local 2 start local 3 start local 4 start local 5 0: aload 3
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifeq 17
1: aload 3
checkcast org.graalvm.compiler.lir.Variable
astore 6
start local 6 2: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.phiConstants:Ljava/util/BitSet;
aload 6
getfield org.graalvm.compiler.lir.Variable.index:I
invokevirtual java.util.BitSet.get:(I)Z
ifne 16
3: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.defined:Ljava/util/BitSet;
aload 6
getfield org.graalvm.compiler.lir.Variable.index:I
invokevirtual java.util.BitSet.get:(I)Z
ifne 10
4: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.defined:Ljava/util/BitSet;
aload 6
getfield org.graalvm.compiler.lir.Variable.index:I
invokevirtual java.util.BitSet.set:(I)V
5: aload 2
invokestatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.isConstantLoad:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
ifeq 17
6: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "constant load: %s"
aload 2
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
7: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
aload 6
new org.graalvm.compiler.lir.constopt.DefUseTree
dup
aload 2
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: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.constantsTotal:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
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: goto 17
10: StackMap locals: org.graalvm.compiler.lir.Variable
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
aload 6
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
start local 7 11: aload 7
ifnull 13
12: getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization.phiConstantsSkipped:Lorg/graalvm/compiler/debug/CounterKey;
aload 0
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: StackMap locals: org.graalvm.compiler.lir.constopt.DefUseTree
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.phiConstants:Ljava/util/BitSet;
aload 6
getfield org.graalvm.compiler.lir.Variable.index:I
invokevirtual java.util.BitSet.set:(I)V
14: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_3
ldc "Removing phi variable: %s"
aload 6
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;)V
end local 7 15: goto 17
16: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.$assertionsDisabled:Z
ifne 17
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.defined:Ljava/util/BitSet;
aload 6
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
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 17: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 0 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 start local 2 start local 3 start local 4 start local 5 0: aload 3
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifeq 7
1: aload 3
checkcast org.graalvm.compiler.lir.Variable
astore 6
start local 6 2: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.phiConstants:Ljava/util/BitSet;
aload 6
getfield org.graalvm.compiler.lir.Variable.index:I
invokevirtual java.util.BitSet.get:(I)Z
ifne 7
3: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.map:Lorg/graalvm/compiler/lir/constopt/VariableMap;
aload 6
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
start local 7 4: aload 7
ifnull 7
5: aload 7
aload 1
aload 2
aload 3
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: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantLoadOptimization$Optimization.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "usage of %s : %s"
aload 6
aload 2
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 7 end local 6 7: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 0 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 0: aload 0
getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.USAGE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
aload 1
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 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