public final class org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan implements org.graalvm.compiler.lir.debug.IntervalDumper
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan
super_class: java.lang.Object
{
private org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[] sortedIntervals;
descriptor: [Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[] sortedFixedIntervals;
descriptor: [Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
flags: (0x0002) ACC_PRIVATE
private final org.graalvm.compiler.core.common.alloc.Trace trace;
descriptor: Lorg/graalvm/compiler/core/common/alloc/Trace;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int SPLIT_INTERVALS_CAPACITY_RIGHT_SHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private int firstDerivedIntervalIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[] fixedIntervals;
descriptor: [Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[] intervals;
descriptor: [Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0002) ACC_PRIVATE
private int intervalsSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.lir.LIRInstruction[] opIdToInstructionMap;
descriptor: [Lorg/graalvm/compiler/lir/LIRInstruction;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[] opIdToBlockMap;
descriptor: [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
flags: (0x0002) ACC_PRIVATE
Signature: [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
final org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase this$0;
descriptor: Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
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/lsra/TraceLinearScanPhase;
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.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase, org.graalvm.compiler.core.common.alloc.Trace);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;Lorg/graalvm/compiler/core/common/alloc/Trace;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_m1
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.firstDerivedIntervalIndex:I
2: aload 0
aload 2
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
3: aload 0
aload 1
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.registers:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
anewarray org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
4: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 5 2 trace Lorg/graalvm/compiler/core/common/alloc/Trace;
MethodParameters:
Name Flags
this$0 final
trace
int operandNumber(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)I
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifeq 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Register do not have operand numbers: "
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:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 2
aload 1
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifne 2
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unsupported Value "
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
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.graalvm.compiler.lir.Variable
getfield org.graalvm.compiler.lir.Variable.index:I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 3 1 operand Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
operand
int operandSize();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.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/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
int numRegisters();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.registers:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
public int getFirstLirInstructionId(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
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;
checkcast org.graalvm.compiler.lir.LIRInstruction
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
istore 2
start local 2 1: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 2
iload 2
ifge 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
iload 2
ireturn
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/lsra/TraceLinearScanPhase$TraceLinearScan;
0 3 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
1 3 2 result I
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)I
MethodParameters:
Name Flags
block
public int getLastLirInstructionId(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 2
start local 2 1: aload 2
aload 2
invokeinterface java.util.List.size:()I
iconst_1
isub
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
istore 3
start local 3 2: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 3
iload 3
ifge 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: java.util.List int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 4 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
1 4 2 instructions Ljava/util/List<Lorg/graalvm/compiler/lir/LIRInstruction;>;
2 4 3 result I
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)I
MethodParameters:
Name Flags
block
public jdk.vm.ci.code.RegisterAttributes attributes(jdk.vm.ci.code.Register);
descriptor: (Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/code/RegisterAttributes;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.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/lsra/TraceLinearScanPhase$TraceLinearScan;
0 1 1 reg Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
reg
public org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory getSpillMoveFactory();
descriptor: ()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.moveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
protected org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver createMoveResolver();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: new org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;)V
astore 1
start local 1 1: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver.checkEmpty:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLocalMoveResolver
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
1 3 1 moveResolver Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLocalMoveResolver;
void assignSpillSlot(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.canMaterialize:()Z
ifeq 3
1: aload 1
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
2: goto 9
StackMap locals:
StackMap stack:
3: aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
ifnull 6
4: aload 1
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.allocateSpillSlot:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/AllocatableValue;
astore 2
start local 2 7: aload 1
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.setSpillSlot:(Ljdk/vm/ci/meta/AllocatableValue;)V
8: aload 1
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 10 1 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
7 9 2 slot Ljdk/vm/ci/meta/AllocatableValue;
MethodParameters:
Name Flags
interval
private jdk.vm.ci.meta.AllocatableValue allocateSpillSlot(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/AllocatableValue;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.splitParent:()Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operand:Ljdk/vm/ci/meta/AllocatableValue;
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
istore 2
start local 2 1: 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 7
2: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.cachedStackSlots:[Ljdk/vm/ci/meta/AllocatableValue;
iload 2
aaload
astore 3
start local 3 3: aload 3
ifnull 7
4: getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase.globalStackSlots:Lorg/graalvm/compiler/debug/DebugCounter;
invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
5: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 6
aload 3
invokevirtual jdk.vm.ci.meta.AllocatableValue.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.kind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 6
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.alloc.trace.lsra.TraceInterval.kind:()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
6: StackMap locals: int jdk.vm.ci.meta.AllocatableValue
StackMap stack:
aload 3
areturn
end local 3 7: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.frameMapBuilder:Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.kind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual org.graalvm.compiler.lir.framemap.FrameMapBuilder.allocateSpillSlot:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/VirtualStackSlot;
astore 3
start local 3 8: 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 10
9: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.cachedStackSlots:[Ljdk/vm/ci/meta/AllocatableValue;
iload 2
aload 3
aastore
10: StackMap locals: org.graalvm.compiler.lir.VirtualStackSlot
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase.allocatedStackSlots:Lorg/graalvm/compiler/debug/DebugCounter;
invokeinterface org.graalvm.compiler.debug.DebugCounter.increment:()V
11: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 12 1 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
1 12 2 variableIndex I
3 7 3 cachedStackSlot Ljdk/vm/ci/meta/AllocatableValue;
8 12 3 slot Lorg/graalvm/compiler/lir/VirtualStackSlot;
MethodParameters:
Name Flags
interval
public int blockCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
public org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?> blockAt(int);
descriptor: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
iload 1
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 1 1 index I
Signature: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
MethodParameters:
Name Flags
index
int numLoops();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.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.getLoops:()Ljava/util/Collection;
invokeinterface java.util.Collection.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
boolean isBlockBegin(int);
descriptor: (I)Z
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
aload 0
iload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
aload 0
iload 1
iconst_1
isub
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
if_acmpne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 2 1 opId I
MethodParameters:
Name Flags
opId
boolean isBlockEnd(int);
descriptor: (I)Z
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_2
iadd
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.isBlockBegin:(I)Z
istore 2
start local 2 1: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 2
iload 2
aload 0
iload 1
bipush -2
iand
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.instructionForId:(I)Lorg/graalvm/compiler/lir/LIRInstruction;
instanceof org.graalvm.compiler.lir.StandardOp$BlockEndOp
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
iload 2
ireturn
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/lsra/TraceLinearScanPhase$TraceLinearScan;
0 3 1 opId I
1 3 2 isBlockBegin Z
MethodParameters:
Name Flags
opId
boolean coversBlockBegin(int, int);
descriptor: (II)Z
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
aload 0
iload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
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/lsra/TraceLinearScanPhase$TraceLinearScan;
0 2 1 opId1 I
0 2 2 opId2 I
MethodParameters:
Name Flags
opId1
opId2
boolean hasCall(int);
descriptor: (I)Z
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.isEven:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "opId not even"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.instructionForId:(I)Lorg/graalvm/compiler/lir/LIRInstruction;
invokevirtual org.graalvm.compiler.lir.LIRInstruction.destroysCallerSavedRegisters:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 2 1 opId I
MethodParameters:
Name Flags
opId
public boolean isProcessed(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifeq 1
aload 0
aload 1
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.attributes:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/code/RegisterAttributes;
invokevirtual jdk.vm.ci.code.RegisterAttributes.isAllocatable:()Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 2 1 operand Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
operand
private org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval addToList(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval, org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval, org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
astore 4
start local 4 1: aload 2
ifnull 4
2: aload 2
aload 3
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.next:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
3: goto 5
4: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
aload 3
astore 4
5: StackMap locals:
StackMap stack:
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 6 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 6 1 first Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
0 6 2 prev Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
0 6 3 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
1 6 4 newFirst Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
first
prev
interval
org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval createUnhandledListByFrom(org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$IntervalPredicate);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$IntervalPredicate;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
invokestatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.isSortedByFrom:([Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;)Z
ifne 1
new java.lang.AssertionError
dup
ldc "interval list is not sorted"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.createUnhandledList:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$IntervalPredicate;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 2 1 isList1 Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$IntervalPredicate;
MethodParameters:
Name Flags
isList1
org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval createUnhandledListBySpillPos(org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$IntervalPredicate);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$IntervalPredicate;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
invokestatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.isSortedBySpillPos:([Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Z
ifne 1
new java.lang.AssertionError
dup
ldc "interval list is not sorted"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.createUnhandledList:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$IntervalPredicate;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 2 1 isList1 Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$IntervalPredicate;
MethodParameters:
Name Flags
isList1
private org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval createUnhandledList(org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$IntervalPredicate);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$IntervalPredicate;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.EndMarker:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
arraylength
istore 5
start local 5 3: iconst_0
istore 6
start local 6 4: goto 12
5: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$IntervalPredicate org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval top int int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
iload 6
aaload
astore 4
start local 4 6: aload 4
ifnonnull 8
7: goto 11
8: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$IntervalPredicate org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval int int
StackMap stack:
aload 1
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$IntervalPredicate.apply:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Z
ifeq 11
9: aload 0
aload 2
aload 3
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.addToList:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 2
10: aload 4
astore 3
11: StackMap locals:
StackMap stack:
iinc 6 1
end local 4 StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$IntervalPredicate org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval top int int
StackMap stack:
12: iload 6
iload 5
if_icmplt 5
end local 6 13: aload 3
ifnull 15
14: aload 3
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.EndMarker:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.next:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
15: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 16
aload 3
ifnull 16
aload 3
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.next:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.EndMarker:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
if_acmpeq 16
new java.lang.AssertionError
dup
ldc "linear list ends not with sentinel"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
16: StackMap locals:
StackMap stack:
aload 2
areturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 17 1 isList1 Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$IntervalPredicate;
1 17 2 list1 Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
2 17 3 list1Prev Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
6 12 4 v Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
3 17 5 n I
4 13 6 i I
MethodParameters:
Name Flags
isList1
private org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval addToList(org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval, org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval, org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
astore 4
start local 4 1: aload 2
ifnull 4
2: aload 2
aload 3
putfield org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.next:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
3: goto 5
4: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval
StackMap stack:
aload 3
astore 4
5: StackMap locals:
StackMap stack:
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 6 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 6 1 first Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
0 6 2 prev Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
0 6 3 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
1 6 4 newFirst Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
MethodParameters:
Name Flags
first
prev
interval
org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval createFixedUnhandledList();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=1
start local 0 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedFixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
invokestatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.isSortedByFrom:([Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;)Z
ifne 1
new java.lang.AssertionError
dup
ldc "interval list is not sorted"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.EndMarker:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
astore 1
start local 1 2: aconst_null
astore 2
start local 2 3: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedFixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
arraylength
istore 4
start local 4 4: iconst_0
istore 5
start local 5 5: goto 13
6: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval top int int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedFixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
iload 5
aaload
astore 3
start local 3 7: aload 3
ifnonnull 9
8: goto 12
9: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval int int
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.rewindRange:()V
10: aload 0
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.addToList:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
astore 1
11: aload 3
astore 2
12: StackMap locals:
StackMap stack:
iinc 5 1
end local 3 StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval top int int
StackMap stack:
13: iload 5
iload 4
if_icmplt 6
end local 5 14: aload 2
ifnull 16
15: aload 2
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.EndMarker:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
putfield org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.next:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
16: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 17
aload 2
ifnull 17
aload 2
getfield org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.next:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.EndMarker:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
if_acmpeq 17
new java.lang.AssertionError
dup
ldc "linear list ends not with sentinel"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
17: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
2 18 1 list1 Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
3 18 2 list1Prev Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
7 13 3 v Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
4 18 4 n I
5 14 5 i I
protected void sortIntervalsBeforeAllocation();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan int top int int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
ifnull 5
4: iinc 1 1
end local 2 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 2
7: aload 0
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
iload 1
anewarray org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
invokestatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.sortIntervalsBeforeAllocation:([Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;[Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;)[Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;
checkcast org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[]
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
1 9 1 sortedLen I
3 5 2 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
protected void sortFixedIntervalsBeforeAllocation();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan int top int int org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
ifnull 5
4: iinc 1 1
end local 2 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 2
7: aload 0
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
iload 1
anewarray org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval
invokestatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.sortIntervalsBeforeAllocation:([Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;[Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;)[Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;
checkcast org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedFixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
1 9 1 sortedLen I
3 5 2 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
void sortIntervalsAfterAllocation();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.hasDerivedIntervals:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 1
start local 1 3: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.firstDerivedIntervalIndex:()I
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:()I
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[]
astore 2
start local 2 4: aload 1
arraylength
istore 3
start local 3 5: aload 2
arraylength
istore 4
start local 4 6: aload 2
invokedynamic compare()Ljava/util/Comparator;
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;Ljava/lang/Object;)I
org/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan.lambda$0(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)I (6)
(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)I
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
7: iload 3
iload 4
iadd
anewarray org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
astore 5
start local 5 8: iconst_0
istore 6
start local 6 9: iconst_0
istore 7
start local 7 10: goto 17
11: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[] org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[] int int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[] int int
StackMap stack:
iload 7
iload 4
if_icmpge 12
iload 6
iload 3
if_icmpge 15
aload 1
iload 6
aaload
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
aload 2
iload 7
aaload
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
if_icmpgt 15
12: StackMap locals:
StackMap stack:
aload 5
iload 6
iload 7
iadd
aload 1
iload 6
aaload
aastore
13: iinc 6 1
14: goto 17
15: StackMap locals:
StackMap stack:
aload 5
iload 6
iload 7
iadd
aload 2
iload 7
aaload
aastore
16: iinc 7 1
17: StackMap locals:
StackMap stack:
iload 6
iload 7
iadd
aload 5
arraylength
if_icmplt 11
18: aload 0
aload 5
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
19: 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 20 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
3 20 1 oldList [Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
4 20 2 newList [Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
5 20 3 oldLen I
6 20 4 newLen I
8 20 5 combinedList [Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
9 20 6 oldIdx I
10 20 7 newIdx I
void sortIntervalsBySpillPos();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
invokedynamic compare()Ljava/util/Comparator;
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;Ljava/lang/Object;)I
org/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan.lambda$1(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)I (6)
(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)I
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
public org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval splitChildAtOpId(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval, int, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
iload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.getSplitChildAtOpId:(ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 4
start local 4 1: aload 4
ifnull 5
2: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 4
3: ldc "Split child at pos %d of interval %s is %s"
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
aload 4
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
4: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
aload 4
areturn
5: StackMap locals:
StackMap stack:
new org.graalvm.compiler.debug.GraalError
dup
ldc "LinearScan: interval is null"
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 6 1 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
0 6 2 opId I
0 6 3 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
1 6 4 result Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
interval
opId
mode
jdk.vm.ci.meta.AllocatableValue canonicalSpillOpr(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/AllocatableValue;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
ifnonnull 1
new java.lang.AssertionError
dup
ldc "canonical spill slot not set"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 2 1 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
interval
boolean isMaterialized(jdk.vm.ci.meta.AllocatableValue, int, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Z
flags: (0x0000)
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalFor:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 4
start local 4 1: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 2
aload 4
ifnonnull 2
new java.lang.AssertionError
dup
ldc "interval must exist"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
iload 2
iconst_m1
if_icmpeq 4
3: aload 0
aload 4
iload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.splitChildAtOpId:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 4
4: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
ifeq 5
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.canMaterialize:()Z
ifeq 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 6 1 operand Ljdk/vm/ci/meta/AllocatableValue;
0 6 2 opId I
0 6 3 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
1 6 4 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
operand
opId
mode
boolean isCallerSave(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.attributes:(Ljdk/vm/ci/code/Register;)Ljdk/vm/ci/code/RegisterAttributes;
invokevirtual jdk.vm.ci.code.RegisterAttributes.isCallerSave:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 1 1 operand Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
operand
protected void allocate(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext);
descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase$TraceAllocationContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
aconst_null
astore 5
1: ldc "LinearScan allocate"
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 6
start local 6 2: new org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAllocationPhase$TraceLinearScanAllocationContext
dup
aload 3
getfield org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext.spillMoveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
aload 3
getfield org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext.registerAllocationConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.traceBuilderResult:Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAllocationPhase$TraceLinearScanAllocationContext.<init>:(Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;)V
astore 7
start local 7 3: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.TRACE_LINEAR_SCAN_LIFETIME_ANALYSIS_PHASE:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanLifetimeAnalysisPhase;
aload 1
aload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
aload 7
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanLifetimeAnalysisPhase.apply:(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;Z)V
4: aconst_null
astore 8
aconst_null
astore 9
5: ldc "AfterLifetimeAnalysis"
aload 0
invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
astore 10
start local 10 6: aload 0
ldc "Before register allocation"
iconst_1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.printLir:(Ljava/lang/String;Z)V
7: aload 0
ldc "Before register allocation"
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.printIntervals:(Ljava/lang/String;)V
8: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortIntervalsBeforeAllocation:()V
9: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortFixedIntervalsBeforeAllocation:()V
10: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.TRACE_LINEAR_SCAN_REGISTER_ALLOCATION_PHASE:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanRegisterAllocationPhase;
aload 1
aload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
aload 7
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanRegisterAllocationPhase.apply:(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;Z)V
11: aload 0
ldc "After register allocation"
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.printIntervals:(Ljava/lang/String;)V
12: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.TRACE_LINEAR_SCAN_RESOLVE_DATA_FLOW_PHASE:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase;
aload 1
aload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
aload 7
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase.apply:(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;Z)V
13: iconst_3
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
ldc "%s"
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.TRACE_LINEAR_SCAN_RESOLVE_DATA_FLOW_PHASE:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanResolveDataFlowPhase;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanResolveDataFlowPhase.getName:()Ljava/lang/CharSequence;
invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
14: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$Options.LIROptTraceRAEliminateSpillMoves: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 17
15: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.TRACE_LINEAR_SCAN_ELIMINATE_SPILL_MOVE_PHASE:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanEliminateSpillMovePhase;
aload 1
aload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
aload 7
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanEliminateSpillMovePhase.apply:(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;Z)V
16: iconst_3
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
ldc "%s"
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.TRACE_LINEAR_SCAN_ELIMINATE_SPILL_MOVE_PHASE:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanEliminateSpillMovePhase;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanEliminateSpillMovePhase.getName:()Ljava/lang/CharSequence;
invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
17: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan jdk.vm.ci.code.TargetDescription org.graalvm.compiler.lir.gen.LIRGenerationResult org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAllocationPhase$TraceLinearScanAllocationContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.TRACE_LINEAR_SCAN_ASSIGN_LOCATIONS_PHASE:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase;
aload 1
aload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
aload 7
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase.apply:(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;Z)V
18: 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
19: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.verifyIntervals:()V
20: StackMap locals:
StackMap stack:
aload 10
ifnull 28
aload 10
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 8
aload 10
ifnull 22
aload 10
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
end local 10 StackMap locals:
StackMap stack:
22: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 9
aload 8
ifnonnull 24
aload 9
astore 8
goto 25
StackMap locals:
StackMap stack:
24: aload 8
aload 9
if_acmpeq 25
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 8
athrow
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan jdk.vm.ci.code.TargetDescription org.graalvm.compiler.lir.gen.LIRGenerationResult org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAllocationPhase$TraceLinearScanAllocationContext
StackMap stack: java.lang.Throwable
26: astore 8
start local 8 27: aload 8
invokestatic org.graalvm.compiler.debug.Debug.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 8 end local 7 28: StackMap locals:
StackMap stack:
aload 6
ifnull 34
aload 6
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 4
aload 6
ifnull 30
aload 6
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 6 StackMap locals:
StackMap stack:
30: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 5
aload 4
ifnonnull 32
aload 5
astore 4
goto 33
StackMap locals:
StackMap stack:
32: aload 4
aload 5
if_acmpeq 33
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
33: aload 4
athrow
34: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 35 1 target Ljdk/vm/ci/code/TargetDescription;
0 35 2 lirGenRes Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
0 35 3 traceContext Lorg/graalvm/compiler/lir/alloc/trace/TraceAllocationPhase$TraceAllocationContext;
2 30 6 indent Lorg/graalvm/compiler/debug/Indent;
3 28 7 context Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAllocationPhase$TraceLinearScanAllocationContext;
6 22 10 s Lorg/graalvm/compiler/debug/Debug$Scope;
27 28 8 e Ljava/lang/Throwable;
Exception table:
from to target type
6 20 21 any
5 23 23 any
4 26 26 Class java.lang.Throwable
2 28 29 any
1 31 31 any
MethodParameters:
Name Flags
target
lirGenRes
traceContext
public void printLir(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iconst_3
invokestatic org.graalvm.compiler.debug.Debug.isDumpEnabled:(I)Z
ifeq 2
1: iconst_3
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
aload 1
invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)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/lsra/TraceLinearScanPhase$TraceLinearScan;
0 3 1 label Ljava/lang/String;
0 3 2 hirValid Z
MethodParameters:
Name Flags
label
hirValid
boolean verify();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.verifyIntervals:()V
1: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.verifyRegisters:()V
2: ldc "no errors found"
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
private void verifyRegisters();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: ldc "verifying register allocation"
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 3
start local 3 2: new org.graalvm.compiler.lir.alloc.trace.lsra.RegisterVerifier
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.RegisterVerifier.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;)V
astore 4
start local 4 3: aload 4
aload 0
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.blockAt:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.RegisterVerifier.verify:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
end local 4 4: aload 3
ifnull 10
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 10
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
5: astore 1
aload 3
ifnull 6
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 3 StackMap locals:
StackMap stack:
6: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
aload 1
ifnonnull 8
aload 2
astore 1
goto 9
StackMap locals:
StackMap stack:
8: aload 1
aload 2
if_acmpeq 9
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
9: aload 1
athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
2 6 3 indent Lorg/graalvm/compiler/debug/Indent;
3 4 4 verifier Lorg/graalvm/compiler/lir/alloc/trace/lsra/RegisterVerifier;
Exception table:
from to target type
2 4 5 any
1 7 7 any
protected void verifyIntervals();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=14, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: ldc "verifying intervals"
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 3
start local 3 2: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:()I
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 57
5: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
iload 5
aaload
astore 6
start local 6 6: aload 6
ifnonnull 8
7: goto 56
8: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.checkSplitChildren:()Z
pop
9: aload 6
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
iload 5
if_icmpeq 13
10: ldc "Interval %d is on position %d in list"
aload 6
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
iload 5
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;II)V
11: aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
12: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 6
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operand:Ljdk/vm/ci/meta/AllocatableValue;
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifeq 17
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.kind:()Ljdk/vm/ci/meta/ValueKind;
getstatic org.graalvm.compiler.core.common.LIRKind.Illegal:Lorg/graalvm/compiler/core/common/LIRKind;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 17
14: ldc "Interval %d has no type assigned"
aload 6
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
15: aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
16: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
ifnonnull 21
18: ldc "Interval %d has no register assigned"
aload 6
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
19: aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
20: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.isEmpty:()Z
ifeq 25
22: ldc "Interval %d has no Range"
aload 6
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
23: aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
24: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.to:()I
if_icmplt 29
26: ldc "Interval %d has zero length range"
aload 6
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
27: aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;)V
28: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
iconst_1
if_icmpne 31
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.to:()I
iconst_2
if_icmpne 31
30: goto 56
31: StackMap locals:
StackMap stack:
iload 5
iconst_1
iadd
istore 7
start local 7 32: goto 44
33: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
iload 7
aaload
astore 8
start local 8 34: aload 8
ifnonnull 36
35: goto 43
36: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
iconst_1
if_icmpne 38
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.to:()I
iconst_2
if_icmpne 38
37: goto 43
38: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 9
start local 9 39: aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 10
start local 10 40: aload 6
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.intersects:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Z
istore 11
start local 11 41: iload 11
ifeq 43
aload 9
invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
ifne 43
aload 9
aload 10
invokevirtual jdk.vm.ci.meta.Value.equals:(Ljava/lang/Object;)Z
ifeq 43
42: ldc "Intervals %s and %s overlap and have the same register assigned\n%s\n%s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 8
aastore
dup
iconst_2
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
aastore
dup
iconst_3
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 11 end local 10 end local 9 end local 8 43: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
44: iload 7
iload 4
if_icmplt 33
end local 7 45: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 55
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval top int int org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
46: aload 10
iload 8
aaload
astore 7
start local 7 47: aload 7
ifnonnull 49
48: goto 54
49: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval int int org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 11
start local 11 50: aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 12
start local 12 51: aload 7
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.intersects:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Z
istore 13
start local 13 52: iload 13
ifeq 54
aload 11
invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
ifne 54
aload 11
aload 12
invokevirtual jdk.vm.ci.meta.Value.equals:(Ljava/lang/Object;)Z
ifeq 54
53: ldc "Intervals %s and %s overlap and have the same register assigned\n%s\n%s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
dup
iconst_1
aload 7
aastore
dup
iconst_2
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
aastore
dup
iconst_3
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.logString:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 13 end local 12 end local 11 end local 7 54: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval top int int org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
55: iload 8
iload 9
if_icmplt 46
end local 6 56: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
57: iload 5
iload 4
if_icmplt 5
end local 5 end local 4 58: aload 3
ifnull 64
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 64
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
59: astore 1
aload 3
ifnull 60
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 3 StackMap locals:
StackMap stack:
60: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
61: astore 2
aload 1
ifnonnull 62
aload 2
astore 1
goto 63
StackMap locals:
StackMap stack:
62: aload 1
aload 2
if_acmpeq 63
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
63: aload 1
athrow
64: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 65 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
2 60 3 indent Lorg/graalvm/compiler/debug/Indent;
3 58 4 len I
4 58 5 i I
6 56 6 i1 Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
32 45 7 j I
34 43 8 i2 Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
39 43 9 l1 Ljdk/vm/ci/meta/Value;
40 43 10 l2 Ljdk/vm/ci/meta/Value;
41 43 11 intersects Z
47 54 7 i2 Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
50 54 11 l1 Ljdk/vm/ci/meta/Value;
51 54 12 l2 Ljdk/vm/ci/meta/Value;
52 54 13 intersects Z
Exception table:
from to target type
2 58 59 any
1 61 61 any
void verifyNoOopsInFixedIntervals();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=17, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: ldc "verifying that no oops are in fixed intervals *"
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 3
start local 3 2: new org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;)V
astore 4
start local 4 3: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.createFixedUnhandledList:()Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
astore 6
start local 6 4: new org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
dup
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
iconst_m1
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;I)V
astore 5
start local 5 5: aload 5
ldc 2147483645
ldc 2147483646
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.addRange:(II)V
6: new org.graalvm.compiler.lir.alloc.trace.lsra.TraceIntervalWalker
dup
aload 0
aload 6
aload 5
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceIntervalWalker.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)V
astore 7
start local 7 7: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 32
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval org.graalvm.compiler.lir.alloc.trace.lsra.TraceIntervalWalker top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
8: aload 11
iload 9
aaload
astore 8
start local 8 9: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 8
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 12
start local 12 10: iconst_0
istore 13
start local 13 11: goto 30
12: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval org.graalvm.compiler.lir.alloc.trace.lsra.TraceIntervalWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.util.List int
StackMap stack:
aload 12
iload 13
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 14
start local 14 13: aload 14
invokevirtual org.graalvm.compiler.lir.LIRInstruction.hasState:()Z
ifeq 29
14: aload 7
aload 14
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceIntervalWalker.walkBefore:(I)V
15: iconst_1
istore 15
start local 15 16: iload 15
ifeq 29
17: aload 7
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceIntervalWalker.activeFixedList:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval$FixedList;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval$FixedList.getFixed:()Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
astore 16
start local 16 18: goto 28
19: StackMap locals: org.graalvm.compiler.lir.LIRInstruction int org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval
StackMap stack:
aload 16
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.to:()I
aload 14
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
iconst_1
iadd
if_icmple 27
20: aload 4
aload 16
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer.curInterval:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
21: aload 4
iconst_0
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer.ok:Z
22: aload 14
aload 4
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachInput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
23: aload 14
aload 4
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachAlive:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
24: aload 14
aload 4
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachTemp:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
25: aload 14
aload 4
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachOutput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
26: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 27
aload 4
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer.ok:Z
ifne 27
new java.lang.AssertionError
dup
ldc "fixed intervals should never be live across an oopmap point"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
27: StackMap locals:
StackMap stack:
aload 16
getfield org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.next:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
astore 16
StackMap locals:
StackMap stack:
28: aload 16
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.EndMarker:Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
if_acmpne 19
end local 16 end local 15 end local 14 29: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
30: iload 13
aload 12
invokeinterface java.util.List.size:()I
if_icmplt 12
end local 13 end local 12 end local 8 31: iinc 9 1
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval org.graalvm.compiler.lir.alloc.trace.lsra.TraceIntervalWalker top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
32: iload 9
iload 10
if_icmplt 8
end local 7 end local 6 end local 5 end local 4 33: aload 3
ifnull 39
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 39
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
34: astore 1
aload 3
ifnull 35
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 3 StackMap locals:
StackMap stack:
35: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
36: astore 2
aload 1
ifnonnull 37
aload 2
astore 1
goto 38
StackMap locals:
StackMap stack:
37: aload 1
aload 2
if_acmpeq 38
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
38: aload 1
athrow
39: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
2 35 3 indent Lorg/graalvm/compiler/debug/Indent;
3 33 4 checkConsumer Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan$CheckConsumer;
5 33 5 otherIntervals Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
4 33 6 fixedInts Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
7 33 7 iw Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceIntervalWalker;
9 31 8 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
10 31 12 instructions Ljava/util/List<Lorg/graalvm/compiler/lir/LIRInstruction;>;
11 31 13 j I
13 29 14 op Lorg/graalvm/compiler/lir/LIRInstruction;
16 29 15 checkLive Z
18 29 16 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
Exception table:
from to target type
2 33 34 any
1 36 36 any
public org.graalvm.compiler.lir.LIR getLIR();
descriptor: ()Lorg/graalvm/compiler/lir/LIR;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.res: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/lsra/TraceLinearScanPhase$TraceLinearScan;
public org.graalvm.compiler.lir.framemap.FrameMapBuilder getFrameMapBuilder();
descriptor: ()Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.frameMapBuilder:Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
public org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[] sortedBlocks();
descriptor: ()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
invokevirtual org.graalvm.compiler.core.common.alloc.Trace.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/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
Signature: ()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
public jdk.vm.ci.code.RegisterArray getRegisters();
descriptor: ()Ljdk/vm/ci/code/RegisterArray;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.registers:Ljdk/vm/ci/code/RegisterArray;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
public org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig getRegisterAllocationConfig();
descriptor: ()Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.regAllocConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
public boolean callKillsRegisters();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.regAllocConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
invokevirtual org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
invokeinterface jdk.vm.ci.code.RegisterConfig.areAllAllocatableRegistersCallerSaved:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
boolean neverSpillConstants();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.this$0:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase;
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.neverSpillConstants:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[] intervals();
descriptor: ()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[] fixedIntervals();
descriptor: ()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
void initIntervals();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.operandSize:()I
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
1: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
iconst_1
ishr
iadd
anewarray org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
private org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval createFixedInterval(jdk.vm.ci.code.RegisterValue);
descriptor: (Ljdk/vm/ci/code/RegisterValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval
dup
aload 1
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;)V
astore 2
start local 2 1: aload 1
invokevirtual jdk.vm.ci.code.RegisterValue.getRegister:()Ljdk/vm/ci/code/Register;
getfield jdk.vm.ci.code.Register.number:I
istore 3
start local 3 2: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
iload 3
aaload
ifnull 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
iload 3
aload 2
aastore
4: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 5 1 reg Ljdk/vm/ci/code/RegisterValue;
1 5 2 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
2 5 3 operandNumber I
MethodParameters:
Name Flags
reg
private org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval createInterval(jdk.vm.ci.meta.AllocatableValue);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic jdk.vm.ci.code.ValueUtil.isLegal:(Ljdk/vm/ci/meta/Value;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.operandNumber:(Ljdk/vm/ci/meta/Value;)I
istore 2
start local 2 2: new org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
dup
aload 1
iload 2
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;I)V
astore 3
start local 3 3: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 4
iload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
if_icmplt 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 5
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
iload 2
aaload
ifnull 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
iload 2
aload 3
aastore
6: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 7 1 operand Ljdk/vm/ci/meta/AllocatableValue;
2 7 2 operandNumber I
3 7 3 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
operand
org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval createDerivedInterval(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.firstDerivedIntervalIndex:I
iconst_m1
if_icmpne 2
1: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.firstDerivedIntervalIndex:I
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
arraylength
if_icmpne 4
3: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
arraylength
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
arraylength
iconst_1
ishr
iadd
iconst_1
iadd
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[]
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.kind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.createVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
astore 2
start local 2 5: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 6
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
arraylength
if_icmple 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: org.graalvm.compiler.lir.Variable
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.createInterval:(Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 3
start local 3 7: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 8
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
iconst_1
isub
aaload
aload 3
if_acmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 9 1 source Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
5 9 2 variable Lorg/graalvm/compiler/lir/Variable;
7 9 3 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
source
private org.graalvm.compiler.lir.Variable createVariable(jdk.vm.ci.meta.ValueKind<?>);
descriptor: (Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.lir.Variable
dup
aload 1
aload 0
dup
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
dup_x1
iconst_1
iadd
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
invokespecial org.graalvm.compiler.lir.Variable.<init>:(Ljdk/vm/ci/meta/ValueKind;I)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 1 1 kind Ljdk/vm/ci/meta/ValueKind<*>;
Signature: (Ljdk/vm/ci/meta/ValueKind<*>;)Lorg/graalvm/compiler/lir/Variable;
MethodParameters:
Name Flags
kind
boolean hasDerivedIntervals();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.firstDerivedIntervalIndex:I
iconst_m1
if_icmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
int firstDerivedIntervalIndex();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.firstDerivedIntervalIndex:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
public int intervalsSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval fixedIntervalFor(jdk.vm.ci.code.RegisterValue);
descriptor: (Ljdk/vm/ci/code/RegisterValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
aload 1
invokevirtual jdk.vm.ci.code.RegisterValue.getRegister:()Ljdk/vm/ci/code/Register;
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/lsra/TraceLinearScanPhase$TraceLinearScan;
0 1 1 reg Ljdk/vm/ci/code/RegisterValue;
MethodParameters:
Name Flags
reg
org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval getOrCreateFixedInterval(jdk.vm.ci.code.RegisterValue);
descriptor: (Ljdk/vm/ci/code/RegisterValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervalFor:(Ljdk/vm/ci/code/RegisterValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.createFixedInterval:(Ljdk/vm/ci/code/RegisterValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
areturn
3: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 4 1 reg Ljdk/vm/ci/code/RegisterValue;
1 4 2 ret Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
MethodParameters:
Name Flags
reg
org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval intervalFor(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.operandNumber:(Ljdk/vm/ci/meta/Value;)I
istore 2
start local 2 1: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 2
iload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
if_icmplt 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
iload 2
aaload
areturn
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/lsra/TraceLinearScanPhase$TraceLinearScan;
0 3 1 operand Ljdk/vm/ci/meta/Value;
1 3 2 operandNumber I
MethodParameters:
Name Flags
operand
org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval getOrCreateInterval(jdk.vm.ci.meta.AllocatableValue);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalFor:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.createInterval:(Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
areturn
3: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 4 1 operand Ljdk/vm/ci/meta/AllocatableValue;
1 4 2 ret Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
operand
void initOpIdMaps(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
anewarray org.graalvm.compiler.lir.LIRInstruction
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
1: aload 0
iload 1
anewarray org.graalvm.compiler.core.common.cfg.AbstractBlockBase
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 3 1 numInstructions I
MethodParameters:
Name Flags
numInstructions
void putOpIdMaps(int, org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (ILorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
iload 1
aload 2
aastore
1: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
iload 1
aload 3
aastore
2: return
end local 3 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/lsra/TraceLinearScanPhase$TraceLinearScan;
0 3 1 index I
0 3 2 op Lorg/graalvm/compiler/lir/LIRInstruction;
0 3 3 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (ILorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
index
op
block
int maxOpId();
descriptor: ()I
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
arraylength
ifgt 1
new java.lang.AssertionError
dup
ldc "no operations"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
arraylength
iconst_1
isub
iconst_1
ishl
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
private int opIdToIndex(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
ishr
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 1 1 opId I
MethodParameters:
Name Flags
opId
org.graalvm.compiler.lir.LIRInstruction instructionForId(int);
descriptor: (I)Lorg/graalvm/compiler/lir/LIRInstruction;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 1
iload 1
invokestatic jdk.vm.ci.code.CodeUtil.isEven:(I)Z
ifne 1
new java.lang.AssertionError
dup
ldc "opId not even"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
aload 0
iload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToIndex:(I)I
aaload
astore 2
start local 2 2: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 3
aload 2
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
iload 1
if_icmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: org.graalvm.compiler.lir.LIRInstruction
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 4 1 opId I
2 4 2 instr Lorg/graalvm/compiler/lir/LIRInstruction;
MethodParameters:
Name Flags
opId
org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?> blockForId(int);
descriptor: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
arraylength
ifle 1
iload 1
iflt 1
iload 1
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.maxOpId:()I
iconst_1
iadd
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "opId out of range: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
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
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
aload 0
iload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.opIdToIndex:(I)I
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 3 1 opId I
Signature: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
MethodParameters:
Name Flags
opId
public void printIntervals(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, args_size=2
start local 0 start local 1 0: iconst_3
invokestatic org.graalvm.compiler.debug.Debug.isDumpEnabled:(I)Z
ifeq 36
1: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 35
2: aconst_null
astore 2
aconst_null
astore 3
3: ldc "intervals %s"
aload 1
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
astore 4
start local 4 4: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 9
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
5: aload 8
iload 6
aaload
astore 5
start local 5 6: aload 5
ifnull 8
7: ldc "%s"
aload 5
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.logString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
end local 5 8: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
9: iload 6
iload 7
if_icmplt 5
10: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 15
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[]
StackMap stack:
11: aload 8
iload 6
aaload
astore 5
start local 5 12: aload 5
ifnull 14
13: ldc "%s"
aload 5
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
end local 5 14: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
15: iload 6
iload 7
if_icmplt 11
16: aconst_null
astore 5
aconst_null
astore 6
17: ldc "Basic Blocks"
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 7
start local 7 18: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
invokevirtual org.graalvm.compiler.core.common.alloc.Trace.getBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 22
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
19: aload 11
iload 9
aaload
astore 8
start local 8 20: ldc "B%d [%d, %d, %s] "
aload 8
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getFirstLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLastLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 8
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLoop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 8 21: iinc 9 1
StackMap locals:
StackMap stack:
22: iload 9
iload 10
if_icmplt 19
23: aload 7
ifnull 29
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 29
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
24: astore 5
aload 7
ifnull 25
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 7 StackMap locals:
StackMap stack:
25: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 6
aload 5
ifnonnull 27
aload 6
astore 5
goto 28
StackMap locals:
StackMap stack:
27: aload 5
aload 6
if_acmpeq 28
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
28: aload 5
athrow
29: StackMap locals:
StackMap stack:
aload 4
ifnull 35
aload 4
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
30: astore 2
aload 4
ifnull 31
aload 4
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 4 StackMap locals:
StackMap stack:
31: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
32: astore 3
aload 2
ifnonnull 33
aload 3
astore 2
goto 34
StackMap locals:
StackMap stack:
33: aload 2
aload 3
if_acmpeq 34
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
34: aload 2
athrow
35: StackMap locals:
StackMap stack:
iconst_2
aload 0
aload 1
invokestatic org.graalvm.compiler.debug.Debug.dump:(ILjava/lang/Object;Ljava/lang/String;)V
36: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 37 1 label Ljava/lang/String;
4 31 4 indent Lorg/graalvm/compiler/debug/Indent;
6 8 5 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
12 14 5 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
18 25 7 indent2 Lorg/graalvm/compiler/debug/Indent;
20 21 8 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Exception table:
from to target type
18 23 24 any
17 26 26 any
4 29 30 any
3 32 32 any
MethodParameters:
Name Flags
label
public void visitIntervals(org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor);
descriptor: (Lorg/graalvm/compiler/lir/debug/IntervalDumper$IntervalVisitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor top int int org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 2
aload 1
invokestatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.printFixedInterval:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;Lorg/graalvm/compiler/lir/debug/IntervalDumper$IntervalVisitor;)V
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 11
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor top int int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[]
StackMap stack:
7: aload 5
iload 3
aaload
astore 2
start local 2 8: aload 2
ifnull 10
9: aload 2
aload 1
invokestatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.printInterval:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/debug/IntervalDumper$IntervalVisitor;)V
end local 2 10: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
11: iload 3
iload 4
if_icmplt 7
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 13 1 visitor Lorg/graalvm/compiler/lir/debug/IntervalDumper$IntervalVisitor;
2 4 2 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
8 10 2 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
visitor
private static int lambda$0(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval, org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
0 1 1 b Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
private static int lambda$1(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval, org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.spillDefinitionPos:()I
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.spillDefinitionPos:()I
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
0 1 1 b Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
}
SourceFile: "TraceLinearScanPhase.java"
NestHost: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase
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 OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction
public abstract BlockEndOp = org.graalvm.compiler.lir.StandardOp$BlockEndOp 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 Options = org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase$Options of org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase
final FixedList = org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval$FixedList of org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval
final TraceLinearScanAllocationContext = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAllocationPhase$TraceLinearScanAllocationContext of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAllocationPhase
abstract IntervalPredicate = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$IntervalPredicate of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase
public Options = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$Options of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase
public final TraceLinearScan = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase
CheckConsumer = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan$CheckConsumer of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan
public abstract IntervalVisitor = org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor of org.graalvm.compiler.lir.debug.IntervalDumper
public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool