public final class org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator 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.bu.BottomUpAllocator
super_class: org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase
{
private final jdk.vm.ci.code.TargetDescription target;
descriptor: Ljdk/vm/ci/code/TargetDescription;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.gen.LIRGenerationResult lirGenRes;
descriptor: Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory spillMoveFactory;
descriptor: Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig registerAllocationConfig;
descriptor: Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray callerSaveRegs;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterAttributes[] registerAttributes;
descriptor: [Ljdk/vm/ci/code/RegisterAttributes;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.BitSet allocatedBlocks;
descriptor: Ljava/util/BitSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.core.common.alloc.TraceBuilderResult resultTraces;
descriptor: Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver moveResolver;
descriptor: Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolver;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.meta.AllocatableValue[] stackSlots;
descriptor: [Ljdk/vm/ci/meta/AllocatableValue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.ArrayList<org.graalvm.compiler.lir.LIRInstruction> insertInstructionsBefore;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
private final java.util.ArrayList<org.graalvm.compiler.lir.LIRInstruction> insertInstructionsAfter;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
private final boolean neverSpillConstants;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.ssa.SSAUtil$PhiValueVisitor resolveLoopBackEdgeVisitor;
descriptor: Lorg/graalvm/compiler/lir/ssa/SSAUtil$PhiValueVisitor;
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/alloc/trace/bu/BottomUpAllocator;
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.bu.BottomUpAllocator.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory, org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig, jdk.vm.ci.meta.AllocatableValue[], org.graalvm.compiler.core.common.alloc.TraceBuilderResult, boolean);
descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;[Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase.<init>:()V
1: aload 0
aload 0
invokedynamic visit(Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;)Lorg/graalvm/compiler/lir/ssa/SSAUtil$PhiValueVisitor;
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:
(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
org/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator.lambda$0(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V (7)
(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.resolveLoopBackEdgeVisitor:Lorg/graalvm/compiler/lir/ssa/SSAUtil$PhiValueVisitor;
2: aload 0
aload 1
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.target:Ljdk/vm/ci/code/TargetDescription;
3: aload 0
aload 2
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.lirGenRes:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
4: aload 0
aload 3
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.spillMoveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
5: aload 0
aload 4
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.registerAllocationConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
6: aload 0
aload 4
invokevirtual org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
invokeinterface jdk.vm.ci.code.RegisterConfig.getCallerSaveRegisters:()Ljdk/vm/ci/code/RegisterArray;
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.callerSaveRegs:Ljdk/vm/ci/code/RegisterArray;
7: aload 0
aload 4
invokevirtual org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
invokeinterface jdk.vm.ci.code.RegisterConfig.getAttributesMap:()[Ljdk/vm/ci/code/RegisterAttributes;
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.registerAttributes:[Ljdk/vm/ci/code/RegisterAttributes;
8: aload 0
new java.util.BitSet
dup
aload 2
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.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;
arraylength
invokespecial java.util.BitSet.<init>:(I)V
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.allocatedBlocks:Ljava/util/BitSet;
9: aload 0
aload 6
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.resultTraces:Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
10: aload 0
new org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver
dup
aload 2
aload 3
aload 1
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokespecial org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver.<init>:(Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Ljdk/vm/ci/code/Architecture;)V
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.moveResolver:Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolver;
11: aload 0
iload 7
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.neverSpillConstants:Z
12: aload 0
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsBefore:Ljava/util/ArrayList;
13: aload 0
new java.util.ArrayList
dup
iconst_4
invokespecial java.util.ArrayList.<init>:(I)V
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.insertInstructionsAfter:Ljava/util/ArrayList;
14: getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase$Options.TraceRACacheStackSlots:Lorg/graalvm/compiler/options/StableOptionValue;
invokevirtual org.graalvm.compiler.options.StableOptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 17
15: aload 0
aload 5
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.stackSlots:[Ljdk/vm/ci/meta/AllocatableValue;
16: goto 18
17: StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator jdk.vm.ci.code.TargetDescription org.graalvm.compiler.lir.gen.LIRGenerationResult org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig jdk.vm.ci.meta.AllocatableValue[] org.graalvm.compiler.core.common.alloc.TraceBuilderResult int
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.numVariables:()I
anewarray jdk.vm.ci.meta.AllocatableValue
putfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.stackSlots:[Ljdk/vm/ci/meta/AllocatableValue;
18: StackMap locals:
StackMap stack:
return
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 19 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 19 1 target Ljdk/vm/ci/code/TargetDescription;
0 19 2 lirGenRes Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
0 19 3 spillMoveFactory Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
0 19 4 registerAllocationConfig Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
0 19 5 cachedStackSlots [Ljdk/vm/ci/meta/AllocatableValue;
0 19 6 resultTraces Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
0 19 7 neverSpillConstant Z
MethodParameters:
Name Flags
target
lirGenRes
spillMoveFactory
registerAllocationConfig
cachedStackSlots
resultTraces
neverSpillConstant
private org.graalvm.compiler.lir.LIR getLIR();
descriptor: ()Lorg/graalvm/compiler/lir/LIR;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.lirGenRes:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
private jdk.vm.ci.code.RegisterAttributes attributes(jdk.vm.ci.code.Register);
descriptor: (Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/code/RegisterAttributes;
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.alloc.trace.bu.BottomUpAllocator.registerAttributes:[Ljdk/vm/ci/code/RegisterAttributes;
aload 1
getfield jdk.vm.ci.code.Register.number:I
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 1 1 reg Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
reg
private jdk.vm.ci.meta.AllocatableValue allocateSpillSlot(org.graalvm.compiler.lir.Variable);
descriptor: (Lorg/graalvm/compiler/lir/Variable;)Ljdk/vm/ci/meta/AllocatableValue;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
getfield org.graalvm.compiler.lir.Variable.index:I
istore 2
start local 2 1: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.stackSlots:[Ljdk/vm/ci/meta/AllocatableValue;
iload 2
aaload
astore 3
start local 3 2: aload 3
ifnull 6
3: getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase.globalStackSlots:Lorg/graalvm/compiler/debug/DebugCounter;
invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
4: getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.$assertionsDisabled:Z
ifne 5
aload 3
invokevirtual jdk.vm.ci.meta.AllocatableValue.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
aload 1
invokevirtual org.graalvm.compiler.lir.Variable.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 5
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "CachedStackSlot: kind mismatch? "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.graalvm.compiler.lir.Variable.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " vs. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual jdk.vm.ci.meta.AllocatableValue.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
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: int jdk.vm.ci.meta.AllocatableValue
StackMap stack:
aload 3
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.lirGenRes:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getFrameMapBuilder:()Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
aload 1
invokevirtual org.graalvm.compiler.lir.Variable.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual org.graalvm.compiler.lir.framemap.FrameMapBuilder.allocateSpillSlot:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/VirtualStackSlot;
astore 4
start local 4 7: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.stackSlots:[Ljdk/vm/ci/meta/AllocatableValue;
iload 2
aload 4
aastore
8: getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase.allocatedStackSlots:Lorg/graalvm/compiler/debug/DebugCounter;
invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
9: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 10 1 var Lorg/graalvm/compiler/lir/Variable;
1 10 2 variableIndex I
2 10 3 cachedStackSlot Ljdk/vm/ci/meta/AllocatableValue;
7 10 4 slot Lorg/graalvm/compiler/lir/VirtualStackSlot;
MethodParameters:
Name Flags
var
private void resolveBackEdge(jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
ifne 2
aload 2
aload 1
invokestatic org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver.isMoveToSelf:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Z
ifne 2
1: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.moveResolver:Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolver;
aload 2
aload 1
invokestatic org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolutionPhase.addMapping:(Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolutionPhase$MoveResolver;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 3 1 in Ljdk/vm/ci/meta/Value;
0 3 2 out Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
in
out
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=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.allocate:(Lorg/graalvm/compiler/core/common/alloc/Trace;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 2 1 target Ljdk/vm/ci/code/TargetDescription;
0 2 2 lirGenRes Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
0 2 3 trace Lorg/graalvm/compiler/core/common/alloc/Trace;
0 2 4 context Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase$TraceAllocationContext;
MethodParameters:
Name Flags
target
lirGenRes
trace
context
private void allocate(org.graalvm.compiler.core.common.alloc.Trace);
descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;)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.alloc.trace.bu.BottomUpAllocator.neverSpillConstants:Z
ifeq 2
1: ldc "NeverSpillConstant not supported!"
invokestatic jdk.vm.ci.common.JVMCIError.unimplemented:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
2: StackMap locals:
StackMap stack:
new org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;)V
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator.allocateTrace:(Lorg/graalvm/compiler/core/common/alloc/Trace;)V
3: getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.$assertionsDisabled:Z
ifne 4
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.verify:(Lorg/graalvm/compiler/core/common/alloc/Trace;)Z
ifne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 5 1 trace Lorg/graalvm/compiler/core/common/alloc/Trace;
MethodParameters:
Name Flags
trace
private boolean verify(org.graalvm.compiler.core.common.alloc.Trace);
descriptor: (Lorg/graalvm/compiler/core/common/alloc/Trace;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 4
StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator org.graalvm.compiler.core.common.alloc.Trace top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.lirGenRes:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 2
invokestatic org.graalvm.compiler.lir.LIR.verifyBlock:(Lorg/graalvm/compiler/lir/LIR;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifne 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 3: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmplt 1
5: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 6 1 trace Lorg/graalvm/compiler/core/common/alloc/Trace;
2 3 2 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
MethodParameters:
Name Flags
trace
private static boolean requiresRegisters(org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.Value, org.graalvm.compiler.lir.LIRInstruction$OperandMode, java.util.EnumSet<org.graalvm.compiler.lir.LIRInstruction$OperandFlag>);
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifne 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Not a variable "
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
1: StackMap locals:
StackMap stack:
aload 0
instanceof org.graalvm.compiler.lir.StandardOp$LabelOp
ifeq 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 2
getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
if_acmpeq 4
aload 2
getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.TEMP:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
if_acmpne 5
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aload 3
getstatic org.graalvm.compiler.lir.LIRInstruction$OperandFlag.STACK:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 instruction Lorg/graalvm/compiler/lir/LIRInstruction;
0 8 1 value Ljdk/vm/ci/meta/Value;
0 8 2 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
0 8 3 flags Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;
Signature: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;)Z
MethodParameters:
Name Flags
instruction
value
mode
flags
private void resolveFindInsertPos(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.lirGenRes:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
astore 3
start local 3 1: aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
iconst_1
if_icmpgt 11
2: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 4
3: ldc "inserting moves at end of fromBlock B%d"
aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
4: StackMap locals: org.graalvm.compiler.lir.LIR
StackMap stack:
aload 3
aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 4
start local 4 5: aload 4
aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 5
start local 5 6: aload 5
instanceof org.graalvm.compiler.lir.StandardOp$JumpOp
ifeq 9
7: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.moveResolver:Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolver;
aload 4
aload 4
invokeinterface java.util.List.size:()I
iconst_1
isub
invokevirtual org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver.setInsertPosition:(Ljava/util/List;I)V
8: goto 21
9: StackMap locals: java.util.List org.graalvm.compiler.lir.LIRInstruction
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.moveResolver:Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolver;
aload 4
aload 4
invokeinterface java.util.List.size:()I
invokevirtual org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver.setInsertPosition:(Ljava/util/List;I)V
end local 5 end local 4 10: goto 21
11: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 13
12: ldc "inserting moves at beginning of toBlock B%d"
aload 2
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
13: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.core.common.GraalOptions.DetailedAsserts:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 20
14: getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.$assertionsDisabled:Z
ifne 15
aload 3
aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
iconst_0
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
instanceof org.graalvm.compiler.lir.StandardOp$LabelOp
ifne 15
new java.lang.AssertionError
dup
ldc "block does not start with a label"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
15: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 19
StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.LIR top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
16: aload 7
iload 5
aaload
astore 4
start local 4 17: getstatic org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.$assertionsDisabled:Z
ifne 18
aload 1
aload 4
if_acmpeq 18
new java.lang.AssertionError
dup
ldc "all critical edges must be broken"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 4 18: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
19: iload 5
iload 6
if_icmplt 16
20: StackMap locals: org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.lir.LIR
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.moveResolver:Lorg/graalvm/compiler/lir/alloc/trace/TraceGlobalMoveResolver;
aload 3
aload 2
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
iconst_1
invokevirtual org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolver.setInsertPosition:(Ljava/util/List;I)V
21: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 22 1 fromBlock Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
0 22 2 toBlock Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
1 22 3 lir Lorg/graalvm/compiler/lir/LIR;
5 10 4 instructions Ljava/util/List<Lorg/graalvm/compiler/lir/LIRInstruction;>;
6 10 5 instr Lorg/graalvm/compiler/lir/LIRInstruction;
17 18 4 predecessor Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
fromBlock
toBlock
private void lambda$0(jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator.resolveBackEdge:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/bu/BottomUpAllocator;
0 2 1 in Ljdk/vm/ci/meta/Value;
0 2 2 out Ljdk/vm/ci/meta/Value;
}
Signature: Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase<Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase$TraceAllocationContext;>;
SourceFile: "BottomUpAllocator.java"
NestMembers:
org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$1 org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$2 org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$3 org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator$PhiVisitor
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
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 JumpOp = org.graalvm.compiler.lir.StandardOp$JumpOp of org.graalvm.compiler.lir.StandardOp
public final LabelOp = org.graalvm.compiler.lir.StandardOp$LabelOp of org.graalvm.compiler.lir.StandardOp
public TraceAllocationContext = org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext of org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase
public abstract MoveResolver = org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolutionPhase$MoveResolver of org.graalvm.compiler.lir.alloc.trace.TraceGlobalMoveResolutionPhase
public Options = org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase$Options of org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase
private final Allocator = org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator$Allocator of org.graalvm.compiler.lir.alloc.trace.bu.BottomUpAllocator
public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool
public abstract PhiValueVisitor = org.graalvm.compiler.lir.ssa.SSAUtil$PhiValueVisitor of org.graalvm.compiler.lir.ssa.SSAUtil