public final class org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer
super_class: java.lang.Object
{
private final org.graalvm.compiler.lir.constopt.ConstantTree tree;
descriptor: Lorg/graalvm/compiler/lir/constopt/ConstantTree;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.BitSet visited;
descriptor: Ljava/util/BitSet;
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/ConstantTreeAnalyzer;
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.ConstantTreeAnalyzer.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public static org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost analyze(org.graalvm.compiler.lir.constopt.ConstantTree, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/lir/constopt/ConstantTree;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: ldc "ConstantTreeAnalyzer"
invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
astore 4
start local 4 2: new org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer
dup
aload 0
invokespecial org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.<init>:(Lorg/graalvm/compiler/lir/constopt/ConstantTree;)V
astore 5
start local 5 3: aload 5
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.analyzeBlocks:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
4: aload 0
aload 1
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
5: aload 4
ifnull 6
aload 4
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
6: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer
StackMap stack: org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost
areturn
end local 5 StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
StackMap stack: java.lang.Throwable
7: astore 2
8: aload 4
ifnull 9
aload 4
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
end local 4 StackMap locals:
StackMap stack:
9: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 3
aload 2
ifnonnull 11
aload 3
astore 2
goto 12
StackMap locals:
StackMap stack:
11: aload 2
aload 3
if_acmpeq 12
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 2
athrow
StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTree org.graalvm.compiler.core.common.cfg.AbstractBlockBase
StackMap stack: java.lang.Throwable
13: astore 2
start local 2 14: aload 2
invokestatic org.graalvm.compiler.debug.Debug.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 tree Lorg/graalvm/compiler/lir/constopt/ConstantTree;
0 15 1 startBlock Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
2 9 4 s Lorg/graalvm/compiler/debug/Debug$Scope;
3 7 5 analyzer Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
14 15 2 e Ljava/lang/Throwable;
Exception table:
from to target type
2 5 7 any
1 6 10 any
7 10 10 any
0 6 13 Class java.lang.Throwable
7 13 13 Class java.lang.Throwable
Signature: (Lorg/graalvm/compiler/lir/constopt/ConstantTree;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
MethodParameters:
Name Flags
tree
startBlock
private void <init>(org.graalvm.compiler.lir.constopt.ConstantTree);
descriptor: (Lorg/graalvm/compiler/lir/constopt/ConstantTree;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
2: aload 0
new java.util.BitSet
dup
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.size:()I
invokespecial java.util.BitSet.<init>:(I)V
putfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.visited:Ljava/util/BitSet;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
0 4 1 tree Lorg/graalvm/compiler/lir/constopt/ConstantTree;
MethodParameters:
Name Flags
tree
private void analyzeBlocks(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
astore 2
start local 2 1: aload 2
aload 1
invokeinterface java.util.Deque.offerLast:(Ljava/lang/Object;)Z
pop
2: goto 28
3: StackMap locals: java.util.Deque
StackMap stack:
aload 2
invokeinterface java.util.Deque.pollLast:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.cfg.AbstractBlockBase
astore 3
start local 3 4: aconst_null
astore 4
aconst_null
astore 5
5: iconst_3
ldc "analyze: %s"
aload 3
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(ILjava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
astore 6
start local 6 6: getstatic org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.$assertionsDisabled:Z
ifne 7
aload 3
ifnonnull 7
new java.lang.AssertionError
dup
ldc "worklist is empty!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.Deque org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack:
getstatic org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.$assertionsDisabled:Z
ifne 8
aload 0
aload 3
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.isMarked:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifne 8
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Block not part of the dominator tree: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
8: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.isLeafBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 13
9: iconst_3
ldc "leaf block"
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;)V
10: aload 0
aload 3
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.leafCost:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
11: aload 6
ifnull 28
aload 6
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
12: goto 28
13: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.visited:Ljava/util/BitSet;
aload 3
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokevirtual java.util.BitSet.get:(I)Z
ifne 20
14: iconst_3
ldc "not marked"
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;)V
15: aload 2
aload 3
invokeinterface java.util.Deque.offerLast:(Ljava/lang/Object;)Z
pop
16: aload 3
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominated:()Ljava/util/List;
astore 7
start local 7 17: aload 7
aload 0
aload 2
invokedynamic accept(Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;Ljava/util/Deque;)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/ConstantTreeAnalyzer.lambda$0(Ljava/util/Deque;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V (7)
(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
18: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.visited:Ljava/util/BitSet;
aload 3
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokevirtual java.util.BitSet.set:(I)V
end local 7 19: goto 22
20: StackMap locals:
StackMap stack:
iconst_3
ldc "marked"
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;)V
21: aload 0
aload 3
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.process:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
22: StackMap locals:
StackMap stack:
aload 6
ifnull 28
aload 6
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 4
aload 6
ifnull 24
aload 6
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 6 StackMap locals:
StackMap stack:
24: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
25: astore 5
aload 4
ifnonnull 26
aload 5
astore 4
goto 27
StackMap locals:
StackMap stack:
26: aload 4
aload 5
if_acmpeq 27
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
27: aload 4
athrow
end local 3 28: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 3
29: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
0 30 1 startBlock Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
1 30 2 worklist Ljava/util/Deque<Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;>;
4 28 3 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
6 24 6 i Lorg/graalvm/compiler/debug/Indent;
17 19 7 children Ljava/util/List<+Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;>;
Exception table:
from to target type
6 11 23 any
13 22 23 any
5 12 25 any
13 25 25 any
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
startBlock
private void process(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: dconst_0
dstore 3
start local 3 2: iconst_0
istore 5
start local 5 3: aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getDominated:()Ljava/util/List;
astore 6
start local 6 4: getstatic org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.$assertionsDisabled:Z
ifne 5
aload 6
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
aload 0
invokedynamic test(Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;)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/ConstantTreeAnalyzer.isMarked(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z (7)
(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ifne 5
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "no children? should have called leafCost(): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
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
5: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List double int java.util.List
StackMap stack:
aload 6
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 13
StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List double int java.util.List top top java.util.Iterator
StackMap stack:
6: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.core.common.cfg.AbstractBlockBase
astore 8
start local 8 7: aload 0
aload 8
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.isMarked:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 13
8: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
aload 8
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.getCost:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost
astore 10
start local 10 9: getstatic org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.$assertionsDisabled:Z
ifne 10
aload 10
ifnonnull 10
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Child with null cost? block: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
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
10: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List double int java.util.List top org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.Iterator org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost
StackMap stack:
aload 2
aload 10
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getUsages:()Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
11: iload 5
aload 10
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getNumMaterializations:()I
iadd
istore 5
12: dload 3
aload 10
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.getBestCost:()D
dadd
dstore 3
end local 10 end local 8 13: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List double int java.util.List top top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
14: getstatic org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.$assertionsDisabled:Z
ifne 15
iload 5
ifgt 15
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "No materialization? "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
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
15: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List double int java.util.List
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.getUsages:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/List;
astore 8
start local 8 16: aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.probability:()D
dstore 9
start local 9 17: aload 8
invokeinterface java.util.List.isEmpty:()Z
ifeq 18
dload 9
dload 3
iload 5
invokestatic org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.shouldMaterializerInCurrentBlock:(DDI)Z
ifeq 22
18: StackMap locals: org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.util.List double int java.util.List top java.util.List double
StackMap stack:
aload 2
aload 8
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
19: dload 9
dstore 3
20: iconst_1
istore 5
21: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.CANDIDATE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.set:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
22: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.$assertionsDisabled:Z
ifne 23
new java.util.HashSet
dup
aload 2
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.HashSet.size:()I
aload 2
invokeinterface java.util.List.size:()I
if_icmpeq 23
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "doulbe entries? "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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
23: StackMap locals:
StackMap stack:
new org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost
dup
dload 3
aload 2
iload 5
invokespecial org.graalvm.compiler.lir.constopt.ConstantTree$NodeCost.<init>:(DLjava/util/List;I)V
astore 11
start local 11 24: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
aload 1
aload 11
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.setCost:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
25: return
end local 11 end local 9 end local 8 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
0 26 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
1 26 2 usages Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;
2 26 3 bestCost D
3 26 5 numMat I
4 26 6 children Ljava/util/List<+Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;>;
7 13 8 child Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
9 13 10 childCost Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
16 26 8 usagesBlock Ljava/util/List<Lorg/graalvm/compiler/lir/constopt/UseEntry;>;
17 26 9 probabilityBlock D
24 26 11 nodeCost Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
block
private static boolean shouldMaterializerInCurrentBlock(double, double, int);
descriptor: (DDI)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 2 start local 4 0: dload 0
ldc 0.9
iload 4
iconst_1
isub
i2d
invokestatic java.lang.Math.pow:(DD)D
dmul
dload 2
dcmpg
ifge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 probabilityBlock D
0 2 2 probabilityChildren D
0 2 4 numMat I
MethodParameters:
Name Flags
probabilityBlock
probabilityChildren
numMat
private void filteredPush(java.util.Deque<org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Ljava/util/Deque;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.isMarked:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 3
1: iconst_3
ldc "adding %s to the worklist"
aload 2
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;Ljava/lang/Object;)V
2: aload 1
aload 2
invokeinterface java.util.Deque.offerLast:(Ljava/lang/Object;)Z
pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
0 4 1 worklist Ljava/util/Deque<Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;>;
0 4 2 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Ljava/util/Deque<Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
worklist
block
private void leafCost(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
getstatic org.graalvm.compiler.lir.constopt.ConstantTree$Flags.CANDIDATE:Lorg/graalvm/compiler/lir/constopt/ConstantTree$Flags;
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.set:(Ljava/lang/Enum;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
1: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.getOrInitCost:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/constopt/ConstantTree$NodeCost;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
0 3 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
block
private boolean isMarked(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.isMarked:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
0 1 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
MethodParameters:
Name Flags
block
private boolean isLeafBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.tree:Lorg/graalvm/compiler/lir/constopt/ConstantTree;
aload 1
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTree.isLeafBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
0 1 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
MethodParameters:
Name Flags
block
private void lambda$0(java.util.Deque, org.graalvm.compiler.core.common.cfg.AbstractBlockBase);
descriptor: (Ljava/util/Deque;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.lir.constopt.ConstantTreeAnalyzer.filteredPush:(Ljava/util/Deque;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/constopt/ConstantTreeAnalyzer;
0 1 2 child Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<TT;>;
}
SourceFile: "ConstantTreeAnalyzer.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Scope = org.graalvm.compiler.debug.Debug$Scope of org.graalvm.compiler.debug.Debug
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