public final class org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator extends org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase<org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator
super_class: org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase
{
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/alloc/trace/TrivialTraceAllocator;
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.alloc.trace.TrivialTraceAllocator.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/TrivialTraceAllocator;
protected void run(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.core.common.alloc.Trace, org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext);
descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/core/common/alloc/Trace;Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase$TraceAllocationContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
astore 5
start local 5 1: getstatic org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator.$assertionsDisabled:Z
ifne 2
aload 5
aload 3
invokestatic org.graalvm.compiler.lir.alloc.trace.TraceUtil.isTrivialTrace:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/alloc/Trace;)Z
ifne 2
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Not a trivial trace! "
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
2: StackMap locals: org.graalvm.compiler.lir.LIR
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
iconst_0
aaload
astore 6
start local 6 3: getstatic org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator.$assertionsDisabled:Z
ifne 4
aload 3
invokestatic org.graalvm.compiler.lir.alloc.trace.TraceAssertions.singleHeadPredecessor:(Lorg/graalvm/compiler/core/common/alloc/Trace;)Z
ifne 4
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Trace head with more than one predecessor?!"
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
4: StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
iconst_0
aaload
astore 7
start local 7 5: aload 4
getfield org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
astore 8
start local 8 6: aload 6
aload 7
aload 8
aload 5
aload 6
invokestatic org.graalvm.compiler.lir.ssa.SSAUtil.phiOutOrNull:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/StandardOp$JumpOp;
invokestatic org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator.allocate:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;Lorg/graalvm/compiler/lir/LIRInstruction;)V
7: return
end local 8 end local 7 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 8 0 this Lorg/graalvm/compiler/lir/alloc/trace/TrivialTraceAllocator;
0 8 1 target Ljdk/vm/ci/code/TargetDescription;
0 8 2 lirGenRes Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
0 8 3 trace Lorg/graalvm/compiler/core/common/alloc/Trace;
0 8 4 context Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase$TraceAllocationContext;
1 8 5 lir Lorg/graalvm/compiler/lir/LIR;
3 8 6 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
5 8 7 pred Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
6 8 8 livenessInfo Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
MethodParameters:
Name Flags
target
lirGenRes
trace
context
public static void allocate(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo, org.graalvm.compiler.lir.LIRInstruction);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;Lorg/graalvm/compiler/lir/LIRInstruction;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator.$assertionsDisabled:Z
ifne 1
aload 2
aload 0
invokestatic org.graalvm.compiler.lir.alloc.trace.TraceAssertions.liveSetsAreSorted:(Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator.$assertionsDisabled:Z
ifne 2
aload 2
aload 1
invokestatic org.graalvm.compiler.lir.alloc.trace.TraceAssertions.liveSetsAreSorted:(Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getBlockIn:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[I
astore 4
start local 4 3: aload 2
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getOutLocation:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[Ljdk/vm/ci/meta/Value;
astore 5
start local 5 4: aload 4
arraylength
istore 6
start local 6 5: aload 2
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getBlockOut:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[I
astore 7
start local 7 6: aload 7
arraylength
istore 8
start local 8 7: iload 8
anewarray jdk.vm.ci.meta.Value
astore 9
start local 9 8: getstatic org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator.$assertionsDisabled:Z
ifne 9
iload 8
iload 6
if_icmple 9
new java.lang.AssertionError
dup
ldc "Trivial Trace! There cannot be more outgoing values than incoming."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo org.graalvm.compiler.lir.LIRInstruction int[] jdk.vm.ci.meta.Value[] int int[] int jdk.vm.ci.meta.Value[]
StackMap stack:
iconst_0
istore 10
start local 10 10: iconst_0
istore 11
start local 11 11: goto 15
12: StackMap locals: int int
StackMap stack:
aload 7
iload 10
iaload
aload 4
iload 11
iaload
if_icmpne 14
13: aload 9
iload 10
iinc 10 1
aload 5
iload 11
aaload
aastore
14: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
15: iload 10
iload 8
if_icmplt 12
end local 11 end local 10 16: aload 2
aload 0
aload 5
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.setInLocations:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;[Ljdk/vm/ci/meta/Value;)V
17: aload 2
aload 0
aload 9
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.setOutLocations:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;[Ljdk/vm/ci/meta/Value;)V
18: aload 3
ifnull 20
19: aload 3
aload 4
aload 5
invokestatic org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator.handlePhiOut:(Lorg/graalvm/compiler/lir/LIRInstruction;[I[Ljdk/vm/ci/meta/Value;)V
20: StackMap locals:
StackMap stack:
return
end local 9 end local 8 end local 7 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 21 0 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
0 21 1 pred Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
0 21 2 livenessInfo Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
0 21 3 jump Lorg/graalvm/compiler/lir/LIRInstruction;
3 21 4 blockIn [I
4 21 5 predLocOut [Ljdk/vm/ci/meta/Value;
5 21 6 inLenght I
6 21 7 blockOut [I
7 21 8 outLength I
8 21 9 locationOut [Ljdk/vm/ci/meta/Value;
10 16 10 outIdx I
11 16 11 inIdx I
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;Lorg/graalvm/compiler/lir/LIRInstruction;)V
MethodParameters:
Name Flags
block
pred
livenessInfo
jump
private static void handlePhiOut(org.graalvm.compiler.lir.LIRInstruction, int[], jdk.vm.ci.meta.Value[]);
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;[I[Ljdk/vm/ci/meta/Value;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator$1
dup
aload 2
aload 1
invokespecial org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator$1.<init>:([Ljdk/vm/ci/meta/Value;[I)V
astore 3
start local 3 1: aload 0
aload 3
invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachAlive:(Lorg/graalvm/compiler/lir/ValueProcedure;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 jump Lorg/graalvm/compiler/lir/LIRInstruction;
0 3 1 varIn [I
0 3 2 locIn [Ljdk/vm/ci/meta/Value;
1 3 3 outputConsumer Lorg/graalvm/compiler/lir/ValueProcedure;
MethodParameters:
Name Flags
jump
varIn
locIn
}
Signature: Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase<Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase$TraceAllocationContext;>;
SourceFile: "TrivialTraceAllocator.java"
NestMembers:
org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator$1
InnerClasses:
public JumpOp = org.graalvm.compiler.lir.StandardOp$JumpOp of org.graalvm.compiler.lir.StandardOp
public TraceAllocationContext = org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext of org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase
org.graalvm.compiler.lir.alloc.trace.TrivialTraceAllocator$1