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 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
org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo getGlobalLivenessInfo();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
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.livenessInfo:Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
int operandNumber(org.graalvm.compiler.lir.Variable);
descriptor: (Lorg/graalvm/compiler/lir/Variable;)I
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.graalvm.compiler.lir.Variable.index:I
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 Lorg/graalvm/compiler/lir/Variable;
MethodParameters:
Name Flags
operand
org.graalvm.compiler.options.OptionValues getOptions();
descriptor: ()Lorg/graalvm/compiler/options/OptionValues;
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.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
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.debug.DebugContext getDebug();
descriptor: ()Lorg/graalvm/compiler/debug/DebugContext;
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.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
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
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
invokevirtual java.util.ArrayList.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.ArrayList 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/ArrayList<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 boolean isAllocatable(jdk.vm.ci.code.RegisterValue);
descriptor: (Ljdk/vm/ci/code/RegisterValue;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.vm.ci.code.RegisterValue.getRegister:()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
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 register Ljdk/vm/ci/code/RegisterValue;
MethodParameters:
Name Flags
register
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=6, 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.res:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 1: 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.operandNumber:I
istore 3
start local 3 2: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
astore 4
start local 4 3: getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase$Options.TraceRACacheStackSlots:Lorg/graalvm/compiler/options/OptionKey;
aload 4
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 9
4: 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 3
aaload
astore 5
start local 5 5: aload 5
ifnull 9
6: getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase.globalStackSlots:Lorg/graalvm/compiler/debug/CounterKey;
aload 2
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
7: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 8
aload 5
invokevirtual jdk.vm.ci.meta.AllocatableValue.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getKind:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/ValueKind;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 8
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "CachedStackSlot: kind mismatch? "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getKind:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)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 5
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
8: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.debug.DebugContext int org.graalvm.compiler.options.OptionValues jdk.vm.ci.meta.AllocatableValue
StackMap stack:
aload 5
areturn
end local 5 9: 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 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getKind:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/ValueKind;
invokevirtual org.graalvm.compiler.lir.framemap.FrameMapBuilder.allocateSpillSlot:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/VirtualStackSlot;
astore 5
start local 5 10: getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase$Options.TraceRACacheStackSlots:Lorg/graalvm/compiler/options/OptionKey;
aload 4
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 12
11: 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 3
aload 5
aastore
12: StackMap locals: org.graalvm.compiler.lir.VirtualStackSlot
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.TraceRegisterAllocationPhase.allocatedStackSlots:Lorg/graalvm/compiler/debug/CounterKey;
aload 2
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
13: aload 5
areturn
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 14 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 14 1 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
1 14 2 debug Lorg/graalvm/compiler/debug/DebugContext;
2 14 3 variableIndex I
3 14 4 options Lorg/graalvm/compiler/options/OptionValues;
5 9 5 cachedStackSlot Ljdk/vm/ci/meta/AllocatableValue;
10 14 5 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=7, 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.fixedIntervals:[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.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 11
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 org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 3
ifnonnull 7
6: goto 10
7: 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 org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.rewindRange:()V
8: 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
9: aload 3
astore 2
end local 3 10: 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 org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
iload 5
if_icmplt 4
12: aload 2
ifnull 14
13: 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;
14: 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
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 15
aload 2
ifnull 15
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 15
new java.lang.AssertionError
dup
ldc "linear list ends not with sentinel"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
15: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
2 16 1 list1 Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
3 16 2 list1Prev Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
5 10 3 v Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
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/TraceInterval;[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)[Lorg/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;
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
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.SORT_BY_FROM_COMP:Ljava/util/Comparator;
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;
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.SORT_BY_SPILL_POS_COMP:Ljava/util/Comparator;
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=5, 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: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 4
3: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
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
invokevirtual org.graalvm.compiler.debug.DebugContext.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(org.graalvm.compiler.lir.Variable, int, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Lorg/graalvm/compiler/lir/Variable;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:(Lorg/graalvm/compiler/lir/Variable;)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 Lorg/graalvm/compiler/lir/Variable;
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=9, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
getfield org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext.spillMoveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
astore 4
start local 4 1: aload 3
getfield org.graalvm.compiler.lir.alloc.trace.TraceAllocationPhase$TraceAllocationContext.registerAllocationConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
astore 5
start local 5 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.res:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 6
start local 6 3: aconst_null
astore 7
aconst_null
astore 8
4: aload 6
ldc "LinearScan allocate"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 9
start local 9 5: 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 4
aload 5
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
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/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;Z)V
6: aconst_null
astore 10
aconst_null
astore 11
7: aload 6
ldc "AfterLifetimeAnalysis"
aload 0
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 12
start local 12 8: aload 0
ldc "After instruction numbering"
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.printLir:(Ljava/lang/String;)V
9: aload 0
ldc "Before register allocation"
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.printIntervals:(Ljava/lang/String;)V
10: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortIntervalsBeforeAllocation:()V
11: 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 4
aload 5
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
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/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;Z)V
12: aload 0
ldc "After register allocation"
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.printIntervals:(Ljava/lang/String;)V
13: 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 4
aload 5
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
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/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
14: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
astore 13
start local 13 15: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$Options.LIROptTraceRAEliminateSpillMoves:Lorg/graalvm/compiler/options/OptionKey;
aload 13
invokevirtual org.graalvm.compiler.options.OptionKey.getValue:(Lorg/graalvm/compiler/options/OptionValues;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 17
16: 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 4
aload 5
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
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/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
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 org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope org.graalvm.compiler.options.OptionValues
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 4
aload 5
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
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/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;Z)V
18: aload 13
invokestatic org.graalvm.compiler.debug.Assertions.detailedAssertionsEnabled:(Lorg/graalvm/compiler/options/OptionValues;)Z
ifeq 20
19: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.verifyIntervals:()V
end local 13 20: StackMap locals:
StackMap stack:
aload 12
ifnull 28
aload 12
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 28
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 10
aload 12
ifnull 22
aload 12
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 12 StackMap locals:
StackMap stack:
22: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 11
aload 10
ifnonnull 24
aload 11
astore 10
goto 25
StackMap locals:
StackMap stack:
24: aload 10
aload 11
if_acmpeq 25
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 10
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 org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
26: astore 10
start local 10 27: aload 6
aload 10
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 10 28: StackMap locals:
StackMap stack:
aload 9
ifnull 34
aload 9
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 7
aload 9
ifnull 30
aload 9
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 9 StackMap locals:
StackMap stack:
30: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 8
aload 7
ifnonnull 32
aload 8
astore 7
goto 33
StackMap locals:
StackMap stack:
32: aload 7
aload 8
if_acmpeq 33
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
33: aload 7
athrow
34: StackMap locals:
StackMap stack:
return
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 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;
1 35 4 spillMoveFactory Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
2 35 5 registerAllocationConfig Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
3 35 6 debug Lorg/graalvm/compiler/debug/DebugContext;
5 30 9 indent Lorg/graalvm/compiler/debug/Indent;
8 22 12 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
15 20 13 options Lorg/graalvm/compiler/options/OptionValues;
27 28 10 e Ljava/lang/Throwable;
Exception table:
from to target type
8 20 21 any
7 23 23 any
6 26 26 Class java.lang.Throwable
5 28 29 any
4 31 31 any
MethodParameters:
Name Flags
target
lirGenRes
traceContext
public void printLir(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
iconst_4
invokevirtual org.graalvm.compiler.debug.DebugContext.isDumpEnabled:(I)Z
ifeq 2
1: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
iconst_4
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
ldc "%s (Trace%d)"
aload 1
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.getId:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
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 label Ljava/lang/String;
MethodParameters:
Name Flags
label
boolean verify();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, 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: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
ldc "no errors found"
invokevirtual org.graalvm.compiler.debug.DebugContext.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: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
ldc "verifying register allocation"
invokevirtual org.graalvm.compiler.debug.DebugContext.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=15, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 1
start local 1 1: aconst_null
astore 2
aconst_null
astore 3
2: aload 1
ldc "verifying intervals"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 4
start local 4 3: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:()I
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 58
6: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.debug.DebugContext 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 6
aaload
astore 7
start local 7 7: aload 7
ifnonnull 9
8: goto 57
9: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.checkSplitChildren:()Z
pop
10: aload 7
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
iload 6
if_icmpeq 14
11: aload 1
ldc "Interval %d is on position %d in list"
aload 7
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
iload 6
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;II)V
12: aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
13: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 0
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getKind:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)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 18
15: aload 1
ldc "Interval %d has no type assigned"
aload 7
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
16: aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
17: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
ifnonnull 22
19: aload 1
ldc "Interval %d has no register assigned"
aload 7
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
20: aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
21: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.isEmpty:()Z
ifeq 26
23: aload 1
ldc "Interval %d has no Range"
aload 7
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
24: aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
25: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.to:()I
if_icmplt 30
27: aload 1
ldc "Interval %d has zero length range"
aload 7
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operandNumber:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
28: aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
29: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
iconst_1
if_icmpne 32
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.to:()I
iconst_2
if_icmpne 32
31: goto 57
32: StackMap locals:
StackMap stack:
iload 6
iconst_1
iadd
istore 8
start local 8 33: goto 45
34: 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 8
aaload
astore 9
start local 9 35: aload 9
ifnonnull 37
36: goto 44
37: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
aload 9
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
iconst_1
if_icmpne 39
aload 9
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.to:()I
iconst_2
if_icmpne 39
38: goto 44
39: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 10
start local 10 40: aload 9
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 11
start local 11 41: aload 7
aload 9
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.intersects:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Z
istore 12
start local 12 42: iload 12
ifeq 44
aload 10
invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
ifne 44
aload 10
aload 11
invokevirtual jdk.vm.ci.meta.Value.equals:(Ljava/lang/Object;)Z
ifeq 44
43: 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 7
aastore
dup
iconst_1
aload 9
aastore
dup
iconst_2
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
aastore
dup
iconst_3
aload 9
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 12 end local 11 end local 10 end local 9 44: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
45: iload 8
iload 5
if_icmplt 34
end local 8 46: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:()[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 56
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.debug.DebugContext 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:
47: aload 11
iload 9
aaload
astore 8
start local 8 48: aload 8
ifnonnull 50
49: goto 55
50: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.debug.DebugContext 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 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 12
start local 12 51: aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 13
start local 13 52: aload 8
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.intersects:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Z
istore 14
start local 14 53: iload 14
ifeq 55
aload 12
invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
ifne 55
aload 12
aload 13
invokevirtual jdk.vm.ci.meta.Value.equals:(Ljava/lang/Object;)Z
ifeq 55
54: 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 7
aastore
dup
iconst_1
aload 8
aastore
dup
iconst_2
aload 7
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.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 14 end local 13 end local 12 end local 8 55: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.debug.DebugContext 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 9 1
StackMap locals:
StackMap stack:
56: iload 9
iload 10
if_icmplt 47
end local 7 57: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
58: iload 6
iload 5
if_icmplt 6
end local 6 end local 5 59: aload 4
ifnull 65
aload 4
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 65
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
60: astore 2
aload 4
ifnull 61
aload 4
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 4 StackMap locals:
StackMap stack:
61: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
62: astore 3
aload 2
ifnonnull 63
aload 3
astore 2
goto 64
StackMap locals:
StackMap stack:
63: aload 2
aload 3
if_acmpeq 64
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
64: aload 2
athrow
65: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
1 66 1 debug Lorg/graalvm/compiler/debug/DebugContext;
3 61 4 indent Lorg/graalvm/compiler/debug/Indent;
4 59 5 len I
5 59 6 i I
7 57 7 i1 Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
33 46 8 j I
35 44 9 i2 Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
40 44 10 l1 Ljdk/vm/ci/meta/Value;
41 44 11 l2 Ljdk/vm/ci/meta/Value;
42 44 12 intersects Z
48 55 8 i2 Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
51 55 12 l1 Ljdk/vm/ci/meta/Value;
52 55 13 l2 Ljdk/vm/ci/meta/Value;
53 55 14 intersects Z
Exception table:
from to target type
3 59 60 any
2 62 62 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(org.graalvm.compiler.lir.Variable);
descriptor: (Lorg/graalvm/compiler/lir/Variable;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, 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:(Lorg/graalvm/compiler/lir/Variable;)I
istore 2
start local 2 2: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 3
aload 1
getfield org.graalvm.compiler.lir.Variable.index:I
iload 2
if_icmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: int
StackMap stack:
new org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
dup
aload 1
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.<init>:(Lorg/graalvm/compiler/lir/Variable;)V
astore 3
start local 3 4: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 5
iload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
if_icmplt 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
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.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
iload 2
aaload
ifnull 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: 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
7: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 8 1 operand Lorg/graalvm/compiler/lir/Variable;
2 8 2 operandNumber I
4 8 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 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getKind:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)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:(Lorg/graalvm/compiler/lir/Variable;)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(org.graalvm.compiler.lir.Variable);
descriptor: (Lorg/graalvm/compiler/lir/Variable;)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: aload 0
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.operandNumber:(Lorg/graalvm/compiler/lir/Variable;)I
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalFor:(I)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
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 operand Lorg/graalvm/compiler/lir/Variable;
MethodParameters:
Name Flags
operand
org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval intervalFor(int);
descriptor: (I)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
flags: (0x0000)
Code:
stack=2, 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
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalsSize:I
if_icmplt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: 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 1
aaload
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 operandNumber I
MethodParameters:
Name Flags
operandNumber
org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval getOrCreateInterval(org.graalvm.compiler.lir.Variable);
descriptor: (Lorg/graalvm/compiler/lir/Variable;)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:(Lorg/graalvm/compiler/lir/Variable;)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:(Lorg/graalvm/compiler/lir/Variable;)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 Lorg/graalvm/compiler/lir/Variable;
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=6, locals=13, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 1: aload 2
iconst_4
invokevirtual org.graalvm.compiler.debug.DebugContext.isDumpEnabled:(I)Z
ifeq 37
2: aload 2
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 36
3: aconst_null
astore 3
aconst_null
astore 4
4: aload 2
ldc "intervals %s"
aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
astore 5
start local 5 5: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.fixedIntervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 10
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.String org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval[]
StackMap stack:
6: aload 9
iload 7
aaload
astore 6
start local 6 7: aload 6
ifnull 9
8: aload 2
ldc "%s"
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.FixedInterval.logString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
end local 6 9: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
10: iload 7
iload 8
if_icmplt 6
11: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 16
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.String org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval[]
StackMap stack:
12: aload 9
iload 7
aaload
astore 6
start local 6 13: aload 6
ifnull 15
14: aload 2
ldc "%s"
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.logString:()Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
end local 6 15: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
16: iload 7
iload 8
if_icmplt 12
17: aconst_null
astore 6
aconst_null
astore 7
18: aload 2
ldc "Basic Blocks"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 8
start local 8 19: 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 12
arraylength
istore 11
iconst_0
istore 10
goto 23
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.String org.graalvm.compiler.debug.DebugContext 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:
20: aload 12
iload 10
aaload
astore 9
start local 9 21: aload 2
ldc "B%d [%d, %d, %s] "
aload 9
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
aload 9
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 9
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 9
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getLoop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 9 22: iinc 10 1
StackMap locals:
StackMap stack:
23: iload 10
iload 11
if_icmplt 20
24: aload 8
ifnull 30
aload 8
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 30
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan java.lang.String org.graalvm.compiler.debug.DebugContext 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
25: astore 6
aload 8
ifnull 26
aload 8
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 8 StackMap locals:
StackMap stack:
26: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 7
aload 6
ifnonnull 28
aload 7
astore 6
goto 29
StackMap locals:
StackMap stack:
28: aload 6
aload 7
if_acmpeq 29
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 6
athrow
30: StackMap locals:
StackMap stack:
aload 5
ifnull 36
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 36
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 3
aload 5
ifnull 32
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 5 StackMap locals:
StackMap stack:
32: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 4
aload 3
ifnonnull 34
aload 4
astore 3
goto 35
StackMap locals:
StackMap stack:
34: aload 3
aload 4
if_acmpeq 35
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
35: aload 3
athrow
36: StackMap locals:
StackMap stack:
aload 2
iconst_4
aload 0
ldc "%s (Trace%d)"
aload 1
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.getId:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
37: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 38 1 label Ljava/lang/String;
1 38 2 debug Lorg/graalvm/compiler/debug/DebugContext;
5 32 5 indent Lorg/graalvm/compiler/debug/Indent;
7 9 6 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/FixedInterval;
13 15 6 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
19 26 8 indent2 Lorg/graalvm/compiler/debug/Indent;
21 22 9 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Exception table:
from to target type
19 24 25 any
18 27 27 any
5 30 31 any
4 33 33 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=3, 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 0
aload 2
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.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
boolean hasInterTracePredecessor(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
flags: (0x0000)
Code:
stack=3, 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.traceBuilderResult:Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
aload 1
invokestatic org.graalvm.compiler.lir.alloc.trace.TraceUtil.hasInterTracePredecessor:(Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;Lorg/graalvm/compiler/core/common/alloc/Trace;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 1 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
MethodParameters:
Name Flags
block
boolean hasInterTraceSuccessor(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
flags: (0x0000)
Code:
stack=3, 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.traceBuilderResult:Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.trace:Lorg/graalvm/compiler/core/common/alloc/Trace;
aload 1
invokestatic org.graalvm.compiler.lir.alloc.trace.TraceUtil.hasInterTraceSuccessor:(Lorg/graalvm/compiler/core/common/alloc/TraceBuilderResult;Lorg/graalvm/compiler/core/common/alloc/Trace;Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 1 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Z
MethodParameters:
Name Flags
block
private void printInterval(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval, org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/debug/IntervalDumper$IntervalVisitor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.locationHint:(Z)Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;
ifnull 1
aload 1
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.locationHint:(Z)Lorg/graalvm/compiler/lir/alloc/trace/lsra/IntervalHint;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.IntervalHint.location:()Ljdk/vm/ci/meta/AllocatableValue;
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: jdk.vm.ci.meta.AllocatableValue
2: astore 3
start local 3 3: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getOperand:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/AllocatableValue;
astore 4
start local 4 4: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getKind:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/ValueKind;
invokevirtual jdk.vm.ci.meta.ValueKind.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 5
start local 5 5: aload 2
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.splitParent:()Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getOperand:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/AllocatableValue;
aload 4
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
aload 3
aload 5
invokeinterface org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor.visitIntervalStart:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljava/lang/String;)V
6: aload 2
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.from:()I
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.to:()I
invokeinterface org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor.visitRange:(II)V
7: iconst_m1
istore 6
start local 6 8: aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.numUsePos:()I
iconst_1
isub
istore 7
start local 7 9: goto 14
10: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor jdk.vm.ci.meta.Value jdk.vm.ci.meta.AllocatableValue java.lang.String int int
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.$assertionsDisabled:Z
ifne 11
iload 6
aload 1
iload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.getUsePos:(I)I
if_icmplt 11
new java.lang.AssertionError
dup
ldc "use positions not sorted"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals:
StackMap stack:
aload 2
aload 1
iload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.getUsePos:(I)I
aload 1
iload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.getUsePosRegisterPriority:(I)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval$RegisterPriority;
invokeinterface org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor.visitUsePos:(ILjava/lang/Object;)V
12: aload 1
iload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.getUsePos:(I)I
istore 6
13: iinc 7 -1
StackMap locals:
StackMap stack:
14: iload 7
ifge 10
end local 7 15: aload 2
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.spillState:()Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval$SpillState;
invokeinterface org.graalvm.compiler.lir.debug.IntervalDumper$IntervalVisitor.visitIntervalEnd:(Ljava/lang/Object;)V
16: return
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 17 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 17 1 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
0 17 2 visitor Lorg/graalvm/compiler/lir/debug/IntervalDumper$IntervalVisitor;
3 17 3 hint Ljdk/vm/ci/meta/Value;
4 17 4 operand Ljdk/vm/ci/meta/AllocatableValue;
5 17 5 type Ljava/lang/String;
8 17 6 prev I
9 15 7 i I
MethodParameters:
Name Flags
interval
visitor
jdk.vm.ci.meta.AllocatableValue getOperand(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=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.operand:Lorg/graalvm/compiler/lir/Variable;
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 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
interval
jdk.vm.ci.meta.ValueKind<?> getKind(org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/ValueKind;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getOperand:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual jdk.vm.ci.meta.AllocatableValue.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
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 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
Signature: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/ValueKind<*>;
MethodParameters:
Name Flags
interval
}
SourceFile: "TraceLinearScanPhase.java"
NestHost: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase
InnerClasses:
public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
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
public final RegisterPriority = org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval$RegisterPriority of org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
public final SpillState = org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval$SpillState of org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
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
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