public final class org.graalvm.compiler.lir.ssi.SSIBuilder extends org.graalvm.compiler.lir.ssi.SSIBuilderBase
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.lir.ssi.SSIBuilder
super_class: org.graalvm.compiler.lir.ssi.SSIBuilderBase
{
private final org.graalvm.compiler.core.common.cfg.BlockMap<org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData> blockData;
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/ssi/SSIBuilder$BlockData;>;
protected void <init>(org.graalvm.compiler.lir.LIR);
descriptor: (Lorg/graalvm/compiler/lir/LIR;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.graalvm.compiler.lir.ssi.SSIBuilderBase.<init>:(Lorg/graalvm/compiler/lir/LIR;)V
1: 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.ssi.SSIBuilder.blockData:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
0 3 1 lir Lorg/graalvm/compiler/lir/LIR;
MethodParameters:
Name Flags
lir
protected void buildIntern();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.init:()V
1: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.computeLocalLiveSets:()V
2: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.computeGlobalLiveSets:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
private int liveSetSize();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getLIR:()Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.numVariables:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[] getBlocks();
descriptor: ()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getLIR:()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;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
Signature: ()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
static int operandNumber(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifeq 2
1: aload 0
invokestatic org.graalvm.compiler.lir.LIRValueUtil.asVariable:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
getfield org.graalvm.compiler.lir.Variable.index:I
ireturn
2: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Can only handle Variables: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 operand Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
operand
private org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData getBlockData(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
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.ssi.SSIBuilder.blockData: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.ssi.SSIBuilder$BlockData
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
0 1 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
MethodParameters:
Name Flags
block
private void initBlockData(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.ssi.SSIBuilder.blockData:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 1
new org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData
dup
invokespecial org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.<init>:()V
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
0 2 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
block
private void init();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 4
StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.initBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
end local 1 3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
iload 3
if_icmplt 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
2 3 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
private void computeLocalLiveSets();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=21, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.liveSetSize:()I
istore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 2
start local 2 2: aload 2
arraylength
iconst_1
isub
istore 3
start local 3 3: goto 47
4: StackMap locals: int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int
StackMap stack:
aload 2
iload 3
aaload
astore 4
start local 4 5: aconst_null
astore 5
aconst_null
astore 6
6: iconst_2
ldc "compute local live sets for block %s"
aload 4
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(ILjava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
astore 7
start local 7 7: new java.util.BitSet
dup
iload 1
invokespecial java.util.BitSet.<init>:(I)V
astore 8
start local 8 8: new java.util.BitSet
dup
iload 1
invokespecial java.util.BitSet.<init>:(I)V
astore 9
start local 9 9: new org.graalvm.compiler.lir.ssi.SSIBuilder$1
dup
aload 0
aload 8
invokespecial org.graalvm.compiler.lir.ssi.SSIBuilder$1.<init>:(Lorg/graalvm/compiler/lir/ssi/SSIBuilder;Ljava/util/BitSet;)V
astore 10
start local 10 10: new org.graalvm.compiler.lir.ssi.SSIBuilder$2
dup
aload 0
aload 8
invokespecial org.graalvm.compiler.lir.ssi.SSIBuilder$2.<init>:(Lorg/graalvm/compiler/lir/ssi/SSIBuilder;Ljava/util/BitSet;)V
astore 11
start local 11 11: new org.graalvm.compiler.lir.ssi.SSIBuilder$3
dup
aload 0
aload 9
aload 8
invokespecial org.graalvm.compiler.lir.ssi.SSIBuilder$3.<init>:(Lorg/graalvm/compiler/lir/ssi/SSIBuilder;Ljava/util/BitSet;Ljava/util/BitSet;)V
astore 12
start local 12 12: new org.graalvm.compiler.lir.ssi.SSIBuilder$4
dup
aload 0
aload 8
aload 9
invokespecial org.graalvm.compiler.lir.ssi.SSIBuilder$4.<init>:(Lorg/graalvm/compiler/lir/ssi/SSIBuilder;Ljava/util/BitSet;Ljava/util/BitSet;)V
astore 13
start local 13 13: new org.graalvm.compiler.lir.ssi.SSIBuilder$5
dup
aload 0
aload 8
aload 9
invokespecial org.graalvm.compiler.lir.ssi.SSIBuilder$5.<init>:(Lorg/graalvm/compiler/lir/ssi/SSIBuilder;Ljava/util/BitSet;Ljava/util/BitSet;)V
astore 14
start local 14 14: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 4
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 15
start local 15 15: aload 15
aload 15
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.listIterator:(I)Ljava/util/ListIterator;
astore 16
start local 16 16: goto 31
17: StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.util.BitSet java.util.BitSet org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer java.util.List java.util.ListIterator
StackMap stack:
aload 16
invokeinterface java.util.ListIterator.previous:()Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 17
start local 17 18: aconst_null
astore 18
aconst_null
astore 19
19: iconst_2
ldc "handle op %d: %s"
aload 17
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
aload 17
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(ILjava/lang/String;ILjava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
astore 20
start local 20 20: aload 17
aload 13
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachOutput:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
21: aload 17
aload 14
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachTemp:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
22: aload 17
aload 12
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachState:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
23: aload 17
aload 11
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachAlive:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
24: aload 17
aload 10
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachInput:(Lorg/graalvm/compiler/lir/InstructionValueConsumer;)V
25: aload 20
ifnull 31
aload 20
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 31
StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.util.BitSet java.util.BitSet org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer org.graalvm.compiler.lir.InstructionValueConsumer java.util.List java.util.ListIterator org.graalvm.compiler.lir.LIRInstruction java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
26: astore 18
aload 20
ifnull 27
aload 20
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 20 StackMap locals:
StackMap stack:
27: aload 18
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 19
aload 18
ifnonnull 29
aload 19
astore 18
goto 30
StackMap locals:
StackMap stack:
29: aload 18
aload 19
if_acmpeq 30
aload 18
aload 19
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
30: aload 18
athrow
end local 17 31: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.ListIterator.hasPrevious:()Z
ifne 17
32: aload 0
aload 4
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
astore 17
start local 17 33: aload 17
aload 8
putfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveGen:Ljava/util/BitSet;
34: aload 17
aload 9
putfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveKill:Ljava/util/BitSet;
35: aload 17
new java.util.BitSet
dup
iload 1
invokespecial java.util.BitSet.<init>:(I)V
putfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveIn:Ljava/util/BitSet;
36: aload 17
new java.util.BitSet
dup
iload 1
invokespecial java.util.BitSet.<init>:(I)V
putfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveOut:Ljava/util/BitSet;
37: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 40
38: iconst_2
ldc "liveGen B%d %s"
aload 4
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
aload 17
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveGen:Ljava/util/BitSet;
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;ILjava/lang/Object;)V
39: iconst_2
ldc "liveKill B%d %s"
aload 4
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
aload 17
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveKill:Ljava/util/BitSet;
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;ILjava/lang/Object;)V
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 40: StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack:
aload 7
ifnull 46
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 46
StackMap locals:
StackMap stack: java.lang.Throwable
41: astore 5
aload 7
ifnull 42
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 7 StackMap locals:
StackMap stack:
42: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 6
aload 5
ifnonnull 44
aload 6
astore 5
goto 45
StackMap locals:
StackMap stack:
44: aload 5
aload 6
if_acmpeq 45
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
45: aload 5
athrow
end local 4 46: StackMap locals:
StackMap stack:
iinc 3 -1
StackMap locals:
StackMap stack:
47: iload 3
ifge 4
end local 3 48: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
1 49 1 liveSize I
2 49 2 blocks [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
3 48 3 i I
5 46 4 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
7 42 7 indent Lorg/graalvm/compiler/debug/Indent;
8 40 8 liveGen Ljava/util/BitSet;
9 40 9 liveKill Ljava/util/BitSet;
10 40 10 useConsumer Lorg/graalvm/compiler/lir/InstructionValueConsumer;
11 40 11 aliveConsumer Lorg/graalvm/compiler/lir/InstructionValueConsumer;
12 40 12 stateConsumer Lorg/graalvm/compiler/lir/InstructionValueConsumer;
13 40 13 defConsumer Lorg/graalvm/compiler/lir/InstructionValueConsumer;
14 40 14 tempConsumer Lorg/graalvm/compiler/lir/InstructionValueConsumer;
15 40 15 instructions Ljava/util/List<Lorg/graalvm/compiler/lir/LIRInstruction;>;
16 40 16 instIt Ljava/util/ListIterator<Lorg/graalvm/compiler/lir/LIRInstruction;>;
18 31 17 op Lorg/graalvm/compiler/lir/LIRInstruction;
20 27 20 indent2 Lorg/graalvm/compiler/debug/Indent;
33 40 17 blockSets Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
Exception table:
from to target type
20 25 26 any
19 28 28 any
7 40 41 any
6 43 43 any
private static void processLocalUse(java.util.BitSet, jdk.vm.ci.meta.Value);
descriptor: (Ljava/util/BitSet;Ljdk/vm/ci/meta/Value;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifeq 5
1: aload 1
invokestatic org.graalvm.compiler.lir.ssi.SSIBuilder.operandNumber:(Ljdk/vm/ci/meta/Value;)I
istore 2
start local 2 2: aload 0
iload 2
invokevirtual java.util.BitSet.set:(I)V
3: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 5
4: iconst_2
ldc "liveGen for operand %d(%s)"
iload 2
aload 1
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;ILjava/lang/Object;)V
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 liveGen Ljava/util/BitSet;
0 6 1 operand Ljdk/vm/ci/meta/Value;
2 5 2 operandNum I
MethodParameters:
Name Flags
liveGen final
operand
private static void processLocalDef(java.util.BitSet, java.util.BitSet, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value[]);
descriptor: (Ljava/util/BitSet;Ljava/util/BitSet;Ljdk/vm/ci/meta/Value;[Ljdk/vm/ci/meta/Value;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifeq 8
1: aload 2
invokestatic org.graalvm.compiler.lir.ssi.SSIBuilder.operandNumber:(Ljdk/vm/ci/meta/Value;)I
istore 4
start local 4 2: aload 3
iload 4
aaload
ifnonnull 4
3: aload 3
iload 4
aload 2
aastore
4: StackMap locals: int
StackMap stack:
aload 1
iload 4
invokevirtual java.util.BitSet.set:(I)V
5: aload 0
iload 4
invokevirtual java.util.BitSet.clear:(I)V
6: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 8
7: iconst_2
ldc "liveKill for operand %d(%s)"
iload 4
aload 2
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;ILjava/lang/Object;)V
end local 4 8: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 liveGen Ljava/util/BitSet;
0 9 1 liveKill Ljava/util/BitSet;
0 9 2 operand Ljdk/vm/ci/meta/Value;
0 9 3 operands [Ljdk/vm/ci/meta/Value;
2 8 4 operandNum I
MethodParameters:
Name Flags
liveGen final
liveKill final
operand
operands
private void computeGlobalLiveSets();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=20, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: iconst_2
ldc "compute global live sets"
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(ILjava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 3
start local 3 2: iconst_0
istore 6
start local 6 3: new java.util.BitSet
dup
aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.liveSetSize:()I
invokespecial java.util.BitSet.<init>:(I)V
astore 7
start local 7 4: StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top top int java.util.BitSet
StackMap stack:
iconst_0
istore 4
start local 4 5: aconst_null
astore 8
aconst_null
astore 9
6: iconst_2
ldc "new iteration %d"
iload 6
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(ILjava/lang/String;I)Lorg/graalvm/compiler/debug/Indent;
astore 10
start local 10 7: aload 0
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 11
start local 11 8: aload 11
arraylength
iconst_1
isub
istore 12
start local 12 9: goto 36
10: StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int top int java.util.BitSet java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int
StackMap stack:
aload 11
iload 12
aaload
astore 13
start local 13 11: aload 0
aload 13
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
astore 14
start local 14 12: iconst_0
istore 5
start local 5 13: aload 13
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
istore 15
start local 15 14: iload 15
ifle 27
15: aload 7
invokevirtual java.util.BitSet.clear:()V
16: aload 13
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 19
arraylength
istore 18
iconst_0
istore 17
goto 20
StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int int java.util.BitSet java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData int top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
17: aload 19
iload 17
aaload
astore 16
start local 16 18: aload 7
aload 0
aload 16
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveIn:Ljava/util/BitSet;
invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
end local 16 19: iinc 17 1
StackMap locals:
StackMap stack:
20: iload 17
iload 18
if_icmplt 17
21: aload 14
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveOut:Ljava/util/BitSet;
aload 7
invokevirtual java.util.BitSet.equals:(Ljava/lang/Object;)Z
ifne 27
22: aload 14
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveOut:Ljava/util/BitSet;
astore 16
start local 16 23: aload 14
aload 7
putfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveOut:Ljava/util/BitSet;
24: aload 16
astore 7
25: iconst_1
istore 4
26: iconst_1
istore 5
end local 16 27: StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int int java.util.BitSet java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData int
StackMap stack:
iload 6
ifeq 28
iload 5
ifeq 35
28: StackMap locals:
StackMap stack:
aload 14
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveIn:Ljava/util/BitSet;
astore 16
start local 16 29: aload 16
invokevirtual java.util.BitSet.clear:()V
30: aload 16
aload 14
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveOut:Ljava/util/BitSet;
invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
31: aload 16
aload 14
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveKill:Ljava/util/BitSet;
invokevirtual java.util.BitSet.andNot:(Ljava/util/BitSet;)V
32: aload 16
aload 14
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveGen:Ljava/util/BitSet;
invokevirtual java.util.BitSet.or:(Ljava/util/BitSet;)V
33: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 35
34: iconst_2
ldc "block %d: livein = %s, liveout = %s"
aload 13
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 16
aload 14
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveOut:Ljava/util/BitSet;
invokestatic org.graalvm.compiler.debug.Debug.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 16 end local 15 end local 14 end local 13 35: StackMap locals:
StackMap stack:
iinc 12 -1
end local 5 StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int top int java.util.BitSet java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int
StackMap stack:
36: iload 12
ifge 10
end local 12 37: iinc 6 1
38: iload 4
ifeq 40
iload 6
bipush 50
if_icmple 40
39: new org.graalvm.compiler.common.PermanentBailoutException
dup
ldc "too many iterations in computeGlobalLiveSets"
invokespecial org.graalvm.compiler.common.PermanentBailoutException.<init>:(Ljava/lang/String;)V
athrow
end local 11 40: StackMap locals:
StackMap stack:
aload 10
ifnull 46
aload 10
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 46
StackMap locals:
StackMap stack: java.lang.Throwable
41: astore 8
aload 10
ifnull 42
aload 10
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 10 StackMap locals:
StackMap stack:
42: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 9
aload 8
ifnonnull 44
aload 9
astore 8
goto 45
StackMap locals:
StackMap stack:
44: aload 8
aload 9
if_acmpeq 45
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
45: aload 8
athrow
46: StackMap locals:
StackMap stack:
iload 4
ifne 4
end local 7 end local 6 end local 4 47: aload 3
ifnull 53
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 53
StackMap locals: org.graalvm.compiler.lir.ssi.SSIBuilder java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
48: astore 1
aload 3
ifnull 49
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 3 StackMap locals:
StackMap stack:
49: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
50: astore 2
aload 1
ifnonnull 51
aload 2
astore 1
goto 52
StackMap locals:
StackMap stack:
51: aload 1
aload 2
if_acmpeq 52
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
52: aload 1
athrow
53: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
2 49 3 indent Lorg/graalvm/compiler/debug/Indent;
5 47 4 changeOccurred Z
13 36 5 changeOccurredInBlock Z
3 47 6 iterationCount I
4 47 7 liveOut Ljava/util/BitSet;
7 42 10 indent2 Lorg/graalvm/compiler/debug/Indent;
8 40 11 blocks [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
9 37 12 i I
11 35 13 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
12 35 14 blockSets Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
14 35 15 n I
18 19 16 successor Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
23 27 16 temp Ljava/util/BitSet;
29 35 16 liveIn Ljava/util/BitSet;
Exception table:
from to target type
7 40 41 any
6 43 43 any
2 47 48 any
1 50 50 any
java.util.BitSet getLiveIn(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/BitSet;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveIn:Ljava/util/BitSet;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
0 1 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Ljava/util/BitSet;
MethodParameters:
Name Flags
block final
java.util.BitSet getLiveOut(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/BitSet;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.ssi.SSIBuilder.getBlockData:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/ssi/SSIBuilder$BlockData;
getfield org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData.liveOut:Ljava/util/BitSet;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/ssi/SSIBuilder;
0 1 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Ljava/util/BitSet;
MethodParameters:
Name Flags
block final
}
SourceFile: "SSIBuilder.java"
NestMembers:
org.graalvm.compiler.lir.ssi.SSIBuilder$1 org.graalvm.compiler.lir.ssi.SSIBuilder$2 org.graalvm.compiler.lir.ssi.SSIBuilder$3 org.graalvm.compiler.lir.ssi.SSIBuilder$4 org.graalvm.compiler.lir.ssi.SSIBuilder$5 org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData
InnerClasses:
org.graalvm.compiler.lir.ssi.SSIBuilder$1
org.graalvm.compiler.lir.ssi.SSIBuilder$2
org.graalvm.compiler.lir.ssi.SSIBuilder$3
org.graalvm.compiler.lir.ssi.SSIBuilder$4
org.graalvm.compiler.lir.ssi.SSIBuilder$5
private BlockData = org.graalvm.compiler.lir.ssi.SSIBuilder$BlockData of org.graalvm.compiler.lir.ssi.SSIBuilder