public class org.graalvm.compiler.lir.alloc.lsra.LinearScan
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.lir.alloc.lsra.LinearScan
super_class: java.lang.Object
{
public static final int DOMINATOR_SPILL_MOVE_ID;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -2
private static final int SPLIT_INTERVALS_CAPACITY_RIGHT_SHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private final org.graalvm.compiler.lir.LIR ir;
descriptor: Lorg/graalvm/compiler/lir/LIR;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.framemap.FrameMapBuilder frameMapBuilder;
descriptor: Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterAttributes[] registerAttributes;
descriptor: [Ljdk/vm/ci/code/RegisterAttributes;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.code.RegisterArray registers;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig regAllocConfig;
descriptor: Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory moveFactory;
descriptor: Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.core.common.cfg.BlockMap<org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData> blockData;
descriptor: Lorg/graalvm/compiler/core/common/cfg/BlockMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/graalvm/compiler/core/common/cfg/BlockMap<Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;>;
protected final org.graalvm.compiler.debug.DebugContext debug;
descriptor: Lorg/graalvm/compiler/debug/DebugContext;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[] sortedBlocks;
descriptor: [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
private org.graalvm.compiler.lir.alloc.lsra.Interval[] intervals;
descriptor: [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0002) ACC_PRIVATE
private int intervalsSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int firstDerivedIntervalIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private org.graalvm.compiler.lir.alloc.lsra.Interval[] sortedIntervals;
descriptor: [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
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<*>;
private final int firstVariableNumber;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int numVariables;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final boolean neverSpillConstants;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final org.graalvm.compiler.lir.alloc.lsra.Interval intervalEndMarker;
descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
public final org.graalvm.compiler.lir.alloc.lsra.Range rangeEndMarker;
descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/Range;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final boolean detailedAsserts;
descriptor: Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private final org.graalvm.compiler.lir.gen.LIRGenerationResult res;
descriptor: Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate IS_PRECOLORED_INTERVAL;
descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate IS_VARIABLE_INTERVAL;
descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate IS_STACK_INTERVAL;
descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
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.lsra.LinearScan.$assertionsDisabled:Z
3: new org.graalvm.compiler.lir.alloc.lsra.LinearScan$1
dup
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$1.<init>:()V
putstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_PRECOLORED_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
4: new org.graalvm.compiler.lir.alloc.lsra.LinearScan$2
dup
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$2.<init>:()V
putstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_VARIABLE_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
5: new org.graalvm.compiler.lir.alloc.lsra.LinearScan$3
dup
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$3.<init>:()V
putstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_STACK_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
6: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory, org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>[], );
descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_m1
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
2: aload 0
aload 2
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getLIR:()Lorg/graalvm/compiler/lir/LIR;
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
3: aload 0
aload 2
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.res:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
4: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
5: aload 0
aload 3
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.moveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
6: aload 0
aload 2
invokevirtual org.graalvm.compiler.lir.gen.LIRGenerationResult.getFrameMapBuilder:()Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.frameMapBuilder:Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
7: aload 0
aload 5
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
8: aload 0
aload 4
invokevirtual org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
invokeinterface jdk.vm.ci.code.RegisterConfig.getAttributesMap:()[Ljdk/vm/ci/code/RegisterAttributes;
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.registerAttributes:[Ljdk/vm/ci/code/RegisterAttributes;
9: aload 0
aload 4
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.regAllocConfig:Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
10: aload 0
aload 1
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getRegisters:()Ljdk/vm/ci/code/RegisterArray;
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.registers:Ljdk/vm/ci/code/RegisterArray;
11: aload 0
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getRegisters:()Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.size:()I
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
12: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.numVariables:()I
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.numVariables:I
13: aload 0
new org.graalvm.compiler.core.common.cfg.BlockMap
dup
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.getControlFlowGraph:()Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;
invokespecial org.graalvm.compiler.core.common.cfg.BlockMap.<init>:(Lorg/graalvm/compiler/core/common/cfg/AbstractControlFlowGraph;)V
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockData:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
14: aload 0
iload 6
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.neverSpillConstants:Z
15: aload 0
new org.graalvm.compiler.lir.alloc.lsra.Range
dup
ldc 2147483647
ldc 2147483647
aconst_null
invokespecial org.graalvm.compiler.lir.alloc.lsra.Range.<init>:(IILorg/graalvm/compiler/lir/alloc/lsra/Range;)V
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.rangeEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
16: aload 0
new org.graalvm.compiler.lir.alloc.lsra.Interval
dup
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
ldc -2147483648
aconst_null
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.rangeEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Range;)V
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
17: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
18: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
invokevirtual org.graalvm.compiler.lir.LIR.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
invokestatic org.graalvm.compiler.debug.Assertions.detailedAssertionsEnabled:(Lorg/graalvm/compiler/options/OptionValues;)Z
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.detailedAsserts:Z
19: 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 20 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 20 1 target Ljdk/vm/ci/code/TargetDescription;
0 20 2 res Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
0 20 3 spillMoveFactory Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
0 20 4 regAllocConfig Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;
0 20 5 sortedBlocks [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
0 20 6 neverSpillConstants Z
Signature: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;Lorg/graalvm/compiler/core/common/alloc/RegisterAllocationConfig;[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Z)V
MethodParameters:
Name Flags
target
res
spillMoveFactory
regAllocConfig
sortedBlocks
neverSpillConstants
public int getVariableNumber(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
if_icmplt 2
1: iload 1
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
isub
ireturn
2: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 3 1 operand I
MethodParameters:
Name Flags
operand
public org.graalvm.compiler.lir.gen.LIRGenerationResult getLIRGenerationResult();
descriptor: ()Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.res:Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
public org.graalvm.compiler.lir.alloc.lsra.Interval intervalEndMarker();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
public org.graalvm.compiler.options.OptionValues getOptions();
descriptor: ()Lorg/graalvm/compiler/options/OptionValues;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir: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/lsra/LinearScan;
public org.graalvm.compiler.debug.DebugContext getDebug();
descriptor: ()Lorg/graalvm/compiler/debug/DebugContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
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
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir: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.lsra.LinearScan.$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/lsra/LinearScan;
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
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir: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.lsra.LinearScan.$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/lsra/LinearScan;
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 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.lsra.LinearScan.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/lsra/LinearScan;
protected org.graalvm.compiler.lir.alloc.lsra.MoveResolver createMoveResolver();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: new org.graalvm.compiler.lir.alloc.lsra.MoveResolver
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.MoveResolver.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
astore 1
start local 1 1: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 2
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.MoveResolver.checkEmpty:()Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.MoveResolver
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/lsra/LinearScan;
1 3 1 moveResolver Lorg/graalvm/compiler/lir/alloc/lsra/MoveResolver;
public static boolean isVariableOrRegister(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifne 1
aload 0
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 value Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
value
int operandNumber(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)I
flags: (0x0000)
Code:
stack=3, locals=3, 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 4
1: aload 1
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
getfield jdk.vm.ci.code.Register.number:I
istore 2
start local 2 2: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 3
iload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
if_icmplt 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 4: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 5
aload 1
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifne 5
new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
aload 1
checkcast org.graalvm.compiler.lir.Variable
getfield org.graalvm.compiler.lir.Variable.index:I
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 6 1 operand Ljdk/vm/ci/meta/Value;
2 4 2 number I
MethodParameters:
Name Flags
operand
int operandSize();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.numVariables:I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
int maxRegisterNumber();
descriptor: ()I
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstVariableNumber:I
iconst_1
isub
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
public org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData getBlockData(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
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.lsra.LinearScan.blockData:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.get:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 1 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$BlockData;
MethodParameters:
Name Flags
block
void initBlockData(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockData:Lorg/graalvm/compiler/core/common/cfg/BlockMap;
aload 1
new org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData
dup
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData.<init>:()V
invokevirtual org.graalvm.compiler.core.common.cfg.BlockMap.put:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 2 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
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.lsra.LinearScan.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/lsra/LinearScan;
0 1 1 reg Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
reg
void assignSpillSlot(org.graalvm.compiler.lir.alloc.lsra.Interval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)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.lsra.Interval.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.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
2: goto 9
StackMap locals:
StackMap stack:
3: aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
ifnull 6
4: aload 1
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.frameMapBuilder:Lorg/graalvm/compiler/lir/framemap/FrameMapBuilder;
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual org.graalvm.compiler.lir.framemap.FrameMapBuilder.allocateSpillSlot:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/VirtualStackSlot;
astore 2
start local 2 7: aload 1
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.setSpillSlot:(Ljdk/vm/ci/meta/AllocatableValue;)V
8: aload 1
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.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/lsra/LinearScan;
0 10 1 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
7 9 2 slot Lorg/graalvm/compiler/lir/VirtualStackSlot;
MethodParameters:
Name Flags
interval
public org.graalvm.compiler.lir.alloc.lsra.Interval[] intervals();
descriptor: ()[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
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.lsra.LinearScan.operandSize:()I
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
1: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
iconst_1
ishr
iadd
anewarray org.graalvm.compiler.lir.alloc.lsra.Interval
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
org.graalvm.compiler.lir.alloc.lsra.Interval createInterval(jdk.vm.ci.meta.AllocatableValue);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0000)
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$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.lsra.LinearScan.operandNumber:(Ljdk/vm/ci/meta/Value;)I
istore 2
start local 2 2: new org.graalvm.compiler.lir.alloc.lsra.Interval
dup
aload 1
iload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.rangeEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Range;)V
astore 3
start local 3 3: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 4
iload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
if_icmplt 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: int org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 5
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
iload 2
aaload
ifnull 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
iload 2
aload 3
aastore
6: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 7 1 operand Ljdk/vm/ci/meta/AllocatableValue;
2 7 2 operandNumber I
3 7 3 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
MethodParameters:
Name Flags
operand
org.graalvm.compiler.lir.alloc.lsra.Interval createDerivedInterval(org.graalvm.compiler.lir.alloc.lsra.Interval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0000)
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
iconst_m1
if_icmpne 2
1: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
arraylength
if_icmpne 4
3: aload 0
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
arraylength
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
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.lsra.Interval[]
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
4: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
iconst_1
iadd
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
5: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 6
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
arraylength
if_icmple 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
new org.graalvm.compiler.lir.Variable
dup
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
aload 0
dup
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.numVariables:I
dup_x1
iconst_1
iadd
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.numVariables:I
invokespecial org.graalvm.compiler.lir.Variable.<init>:(Ljdk/vm/ci/meta/ValueKind;I)V
astore 2
start local 2 7: aload 0
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createInterval:(Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 3
start local 3 8: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 9
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
iconst_1
isub
aaload
aload 3
if_acmpeq 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: org.graalvm.compiler.lir.Variable org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 10 1 source Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
7 10 2 variable Lorg/graalvm/compiler/lir/Variable;
8 10 3 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
MethodParameters:
Name Flags
source
public int blockCount();
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.lsra.LinearScan.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/lsra/LinearScan;
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
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.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/lsra/LinearScan;
0 1 1 index I
Signature: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
MethodParameters:
Name Flags
index
public int liveSetSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
iconst_m1
if_icmpne 1
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.operandSize:()I
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
int numLoops();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir: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/lsra/LinearScan;
org.graalvm.compiler.lir.alloc.lsra.Interval intervalFor(int);
descriptor: (I)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
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.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
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/lsra/LinearScan;
0 1 1 operandNumber I
MethodParameters:
Name Flags
operandNumber
public org.graalvm.compiler.lir.alloc.lsra.Interval intervalFor(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0001) ACC_PUBLIC
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.lsra.LinearScan.operandNumber:(Ljdk/vm/ci/meta/Value;)I
istore 2
start local 2 1: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 2
iload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
if_icmplt 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
iload 2
aaload
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 3 1 operand Ljdk/vm/ci/meta/Value;
1 3 2 operandNumber I
MethodParameters:
Name Flags
operand
public org.graalvm.compiler.lir.alloc.lsra.Interval getOrCreateInterval(jdk.vm.ci.meta.AllocatableValue);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0001) ACC_PUBLIC
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.lsra.LinearScan.intervalFor:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createInterval:(Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
areturn
3: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
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/lsra/LinearScan;
0 4 1 operand Ljdk/vm/ci/meta/AllocatableValue;
1 4 2 ret Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
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.lsra.LinearScan.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.lsra.LinearScan.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/lsra/LinearScan;
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.lsra.LinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
iload 1
aload 2
aastore
1: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.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/lsra/LinearScan;
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.lsra.LinearScan.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.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.lsra.LinearScan.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/lsra/LinearScan;
private static int opIdToIndex(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_1
ishr
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 opId I
MethodParameters:
Name Flags
opId
public org.graalvm.compiler.lir.LIRInstruction instructionForId(int);
descriptor: (I)Lorg/graalvm/compiler/lir/LIRInstruction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$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.lsra.LinearScan.opIdToInstructionMap:[Lorg/graalvm/compiler/lir/LIRInstruction;
iload 1
invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToIndex:(I)I
aaload
astore 2
start local 2 2: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$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/lsra/LinearScan;
0 4 1 opId I
2 4 2 instr Lorg/graalvm/compiler/lir/LIRInstruction;
MethodParameters:
Name Flags
opId
public org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?> blockForId(int);
descriptor: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 2
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.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.lsra.LinearScan.maxOpId:()I
iconst_1
iadd
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
ldc "opId out of range"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.opIdToBlockMap:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
iload 1
invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.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/lsra/LinearScan;
0 3 1 opId I
Signature: (I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
MethodParameters:
Name Flags
opId
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.lsra.LinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
aload 0
iload 1
iconst_1
isub
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.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/lsra/LinearScan;
0 2 1 opId I
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.lsra.LinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
aload 0
iload 2
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.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/lsra/LinearScan;
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.lsra.LinearScan.$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.lsra.LinearScan.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/lsra/LinearScan;
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.lsra.LinearScan.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/lsra/LinearScan;
0 2 1 operand Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
operand
private static boolean isSorted(org.graalvm.compiler.lir.alloc.lsra.Interval[]);
descriptor: ([Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: iconst_m1
istore 1
start local 1 1: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 7
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval[] int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 4
aload 2
ifnonnull 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval[] int org.graalvm.compiler.lir.alloc.lsra.Interval int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 5
iload 1
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
if_icmple 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
istore 1
end local 2 6: iinc 3 1
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval[] int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
StackMap stack:
7: iload 3
iload 4
if_icmplt 2
8: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 intervals [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
1 9 1 from I
3 6 2 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
MethodParameters:
Name Flags
intervals
static org.graalvm.compiler.lir.alloc.lsra.Interval addToList(org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
astore 3
start local 3 1: aload 1
ifnull 4
2: aload 1
aload 2
putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
3: goto 5
4: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
aload 2
astore 3
5: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 first Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
0 6 1 prev Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
0 6 2 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
1 6 3 newFirst Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
MethodParameters:
Name Flags
first
prev
interval
jdk.internal.vm.compiler.collections.Pair<org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval> createUnhandledLists(org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate, org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;)Ljdk/internal/vm/compiler/collections/Pair;
flags: (0x0000)
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.isSorted:([Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)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
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 4
start local 4 3: aconst_null
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
arraylength
istore 8
start local 8 6: iconst_0
istore 9
start local 9 7: goto 19
8: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval top int int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
iload 9
aaload
astore 7
start local 7 9: aload 7
ifnonnull 11
10: goto 18
11: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval int int
StackMap stack:
aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate.apply:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
ifeq 15
12: aload 3
aload 5
aload 7
invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.addToList:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 3
13: aload 7
astore 5
14: goto 18
StackMap locals:
StackMap stack:
15: aload 2
ifnull 16
aload 2
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate.apply:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
ifeq 18
16: StackMap locals:
StackMap stack:
aload 4
aload 6
aload 7
invokestatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.addToList:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 4
17: aload 7
astore 6
18: StackMap locals:
StackMap stack:
iinc 9 1
end local 7 StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval top int int
StackMap stack:
19: iload 9
iload 8
if_icmplt 8
end local 9 20: aload 5
ifnull 22
21: aload 5
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
22: StackMap locals:
StackMap stack:
aload 6
ifnull 24
23: aload 6
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
putfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
24: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 25
aload 5
ifnull 25
aload 5
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
ifne 25
new java.lang.AssertionError
dup
ldc "linear list ends not with sentinel"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
25: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 26
aload 6
ifnull 26
aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
ifne 26
new java.lang.AssertionError
dup
ldc "linear list ends not with sentinel"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
26: StackMap locals:
StackMap stack:
aload 3
aload 4
invokestatic jdk.internal.vm.compiler.collections.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Ljdk/internal/vm/compiler/collections/Pair;
areturn
end local 8 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 27 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 27 1 isList1 Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
0 27 2 isList2 Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
2 27 3 list1 Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
3 27 4 list2 Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
4 27 5 list1Prev Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
5 27 6 list2Prev Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
9 19 7 v Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
6 27 8 n I
7 20 9 i I
Signature: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;)Ljdk/internal/vm/compiler/collections/Pair<Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;>;
MethodParameters:
Name Flags
isList1
isList2
protected void sortIntervalsBeforeAllocation();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=11, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
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: iload 1
anewarray org.graalvm.compiler.lir.alloc.lsra.Interval
astore 2
start local 2 8: iconst_0
istore 3
start local 3 9: iconst_m1
istore 4
start local 4 10: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 26
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan int org.graalvm.compiler.lir.alloc.lsra.Interval[] int int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
StackMap stack:
11: aload 8
iload 6
aaload
astore 5
start local 5 12: aload 5
ifnull 25
13: aload 5
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
istore 9
start local 9 14: iload 4
iload 9
if_icmpgt 18
15: aload 2
iload 3
iinc 3 1
aload 5
aastore
16: aload 5
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
istore 4
17: goto 25
18: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan int org.graalvm.compiler.lir.alloc.lsra.Interval[] int int org.graalvm.compiler.lir.alloc.lsra.Interval int int org.graalvm.compiler.lir.alloc.lsra.Interval[] int
StackMap stack:
iload 3
iconst_1
isub
istore 10
start local 10 19: goto 22
20: StackMap locals: int
StackMap stack:
aload 2
iload 10
iconst_1
iadd
aload 2
iload 10
aaload
aastore
21: iinc 10 -1
StackMap locals:
StackMap stack:
22: iload 10
iflt 23
iload 9
aload 2
iload 10
aaload
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
if_icmplt 20
23: StackMap locals:
StackMap stack:
aload 2
iload 10
iconst_1
iadd
aload 5
aastore
24: iinc 3 1
end local 10 end local 9 end local 5 25: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan int org.graalvm.compiler.lir.alloc.lsra.Interval[] int int top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
26: iload 6
iload 7
if_icmplt 11
27: aload 0
aload 2
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
28: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
1 29 1 sortedLen I
3 5 2 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
8 29 2 sortedList [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
9 29 3 sortedIdx I
10 29 4 sortedFromMax I
12 25 5 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
14 25 9 from I
19 25 10 j I
void sortIntervalsAfterAllocation();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=8, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
iconst_m1
if_icmpne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 1
start local 1 3: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.firstDerivedIntervalIndex:I
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.alloc.lsra.Interval[]
astore 2
start local 2 4: aload 1
arraylength
istore 3
start local 3 5: aload 2
arraylength
istore 4
start local 4 6: aload 2
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
org/graalvm/compiler/lir/alloc/lsra/LinearScan.lambda$0(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)I (6)
(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)I
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
7: iload 3
iload 4
iadd
anewarray org.graalvm.compiler.lir.alloc.lsra.Interval
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.lsra.LinearScan org.graalvm.compiler.lir.alloc.lsra.Interval[] org.graalvm.compiler.lir.alloc.lsra.Interval[] int int org.graalvm.compiler.lir.alloc.lsra.Interval[] 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.lsra.Interval.from:()I
aload 2
iload 7
aaload
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.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.lsra.LinearScan.sortedIntervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
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/lsra/LinearScan;
3 20 1 oldList [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
4 20 2 newList [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
5 20 3 oldLen I
6 20 4 newLen I
8 20 5 combinedList [Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
9 20 6 oldIdx I
10 20 7 newIdx I
public org.graalvm.compiler.lir.alloc.lsra.Interval splitChildAtOpId(org.graalvm.compiler.lir.alloc.lsra.Interval, int, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
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
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.getSplitChildAtOpId:(ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 4
start local 4 1: aload 4
ifnull 5
2: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 4
3: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug: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.lsra.Interval
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/lsra/LinearScan;
0 6 1 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
0 6 2 opId I
0 6 3 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
1 6 4 result Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
MethodParameters:
Name Flags
interval
opId
mode
static jdk.vm.ci.meta.AllocatableValue canonicalSpillOpr(org.graalvm.compiler.lir.alloc.lsra.Interval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Ljdk/vm/ci/meta/AllocatableValue;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 1
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.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 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
MethodParameters:
Name Flags
interval
boolean isMaterialized(jdk.vm.ci.meta.AllocatableValue, int, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Z
flags: (0x0000)
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalFor:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 4
start local 4 1: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$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.lsra.Interval
StackMap stack:
iload 2
iconst_m1
if_icmpeq 4
3: aload 0
aload 4
iload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.splitChildAtOpId:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 4
4: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.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.lsra.Interval.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/lsra/LinearScan;
0 6 1 operand Ljdk/vm/ci/meta/AllocatableValue;
0 6 2 opId I
0 6 3 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
1 6 4 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
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.lsra.LinearScan.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/lsra/LinearScan;
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.phases.AllocationPhase$AllocationContext);
descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aconst_null
astore 4
aconst_null
astore 5
1: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "LinearScan allocate"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 6
start local 6 2: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createLifetimeAnalysisPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanLifetimeAnalysisPhase;
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
3: aconst_null
astore 7
aconst_null
astore 8
4: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "AfterLifetimeAnalysis"
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
astore 9
start local 9 5: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortIntervalsBeforeAllocation:()V
6: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createRegisterAllocationPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
7: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan$Options.LIROptLSRAOptimizeSpillPosition:Lorg/graalvm/compiler/options/OptionKey;
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getOptions:()Lorg/graalvm/compiler/options/OptionValues;
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
8: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createOptimizeSpillPositionPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanOptimizeSpillPositionPhase;
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
9: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan jdk.vm.ci.code.TargetDescription org.graalvm.compiler.lir.gen.LIRGenerationResult org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createResolveDataFlowPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
10: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortIntervalsAfterAllocation:()V
11: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.detailedAsserts:Z
ifeq 13
12: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verify:()Z
pop
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.beforeSpillMoveElimination:()V
14: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createSpillMoveEliminationPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanEliminateSpillMovePhase;
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
15: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createAssignLocationsPhase:()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.apply:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
16: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.detailedAsserts:Z
ifeq 18
17: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verifyIntervals:()V
18: StackMap locals:
StackMap stack:
aload 9
ifnull 26
aload 9
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 7
aload 9
ifnull 20
aload 9
invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
end local 9 StackMap locals:
StackMap stack:
20: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 8
aload 7
ifnonnull 22
aload 8
astore 7
goto 23
StackMap locals:
StackMap stack:
22: aload 7
aload 8
if_acmpeq 23
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
23: aload 7
athrow
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan jdk.vm.ci.code.TargetDescription org.graalvm.compiler.lir.gen.LIRGenerationResult org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
24: astore 7
start local 7 25: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 7
invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 7 26: StackMap locals:
StackMap stack:
aload 6
ifnull 32
aload 6
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 4
aload 6
ifnull 28
aload 6
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 6 StackMap locals:
StackMap stack:
28: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 5
aload 4
ifnonnull 30
aload 5
astore 4
goto 31
StackMap locals:
StackMap stack:
30: aload 4
aload 5
if_acmpeq 31
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
31: aload 4
athrow
32: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 33 1 target Ljdk/vm/ci/code/TargetDescription;
0 33 2 lirGenRes Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
0 33 3 context Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;
2 28 6 indent Lorg/graalvm/compiler/debug/Indent;
5 20 9 s Lorg/graalvm/compiler/debug/DebugContext$Scope;
25 26 7 e Ljava/lang/Throwable;
Exception table:
from to target type
5 18 19 any
4 21 21 any
3 24 24 Class java.lang.Throwable
2 26 27 any
1 29 29 any
MethodParameters:
Name Flags
target
lirGenRes
context
protected void beforeSpillMoveElimination();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
protected org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase createLifetimeAnalysisPhase();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanLifetimeAnalysisPhase;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanLifetimeAnalysisPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
protected org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase createRegisterAllocationPhase();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
protected org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase createOptimizeSpillPositionPhase();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanOptimizeSpillPositionPhase;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanOptimizeSpillPositionPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
protected org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase createResolveDataFlowPhase();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanResolveDataFlowPhase;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanResolveDataFlowPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
protected org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase createSpillMoveEliminationPhase();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanEliminateSpillMovePhase;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanEliminateSpillMovePhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
protected org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase createAssignLocationsPhase();
descriptor: ()Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanAssignLocationsPhase;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanAssignLocationsPhase.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
public void printIntervals(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
ifeq 29
1: aconst_null
astore 2
aconst_null
astore 3
2: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "intervals %s"
aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
astore 4
start local 4 3: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 8
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.lir.alloc.lsra.Interval[]
StackMap stack:
4: aload 8
iload 6
aaload
astore 5
start local 5 5: aload 5
ifnull 7
6: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "%s"
aload 5
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
end local 5 7: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
iload 7
if_icmplt 4
9: aconst_null
astore 5
aconst_null
astore 6
10: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Basic Blocks"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 7
start local 7 11: iconst_0
istore 8
start local 8 12: goto 16
13: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int
StackMap stack:
aload 0
iload 8
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockAt:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 9
start local 9 14: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
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.lsra.LinearScan.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.lsra.LinearScan.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 15: iinc 8 1
StackMap locals:
StackMap stack:
16: iload 8
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockCount:()I
if_icmplt 13
end local 8 17: aload 7
ifnull 23
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 23
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.String java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
18: astore 5
aload 7
ifnull 19
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 7 StackMap locals:
StackMap stack:
19: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 6
aload 5
ifnonnull 21
aload 6
astore 5
goto 22
StackMap locals:
StackMap stack:
21: aload 5
aload 6
if_acmpeq 22
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 5
athrow
23: StackMap locals:
StackMap stack:
aload 4
ifnull 29
aload 4
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 29
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 2
aload 4
ifnull 25
aload 4
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 4 StackMap locals:
StackMap stack:
25: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 3
aload 2
ifnonnull 27
aload 3
astore 2
goto 28
StackMap locals:
StackMap stack:
27: aload 2
aload 3
if_acmpeq 28
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
28: aload 2
athrow
29: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
iconst_2
new org.graalvm.compiler.lir.alloc.lsra.LinearScanIntervalDumper
dup
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.alloc.lsra.Interval[]
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanIntervalDumper.<init>:([Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
aload 1
invokevirtual org.graalvm.compiler.debug.DebugContext.dump:(ILjava/lang/Object;Ljava/lang/String;)V
30: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 31 1 label Ljava/lang/String;
3 25 4 indent Lorg/graalvm/compiler/debug/Indent;
5 7 5 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
11 19 7 indent2 Lorg/graalvm/compiler/debug/Indent;
12 17 8 i I
14 15 9 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Exception table:
from to target type
11 17 18 any
10 20 20 any
3 23 24 any
2 26 26 any
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.lsra.LinearScan.verifyIntervals:()V
1: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.verifyRegisters:()V
2: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug: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/lsra/LinearScan;
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
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug: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.lsra.RegisterVerifier
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.RegisterVerifier.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
astore 4
start local 4 3: aload 4
aload 0
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.blockAt:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
invokevirtual org.graalvm.compiler.lir.alloc.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.lsra.LinearScan 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/lsra/LinearScan;
2 6 3 indent Lorg/graalvm/compiler/debug/Indent;
3 4 4 verifier Lorg/graalvm/compiler/lir/alloc/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=6, locals=11, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "verifying intervals"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalsSize:I
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 51
5: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
iload 5
aaload
astore 6
start local 6 6: aload 6
ifnonnull 8
7: goto 50
8: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.checkSplitChildren:()Z
pop
9: aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
iload 5
if_icmpeq 13
10: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Interval %d is on position %d in list"
aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
iload 5
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;II)V
11: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 6
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
12: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operand:Ljdk/vm/ci/meta/AllocatableValue;
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifeq 17
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
getstatic org.graalvm.compiler.core.common.LIRKind.Illegal:Lorg/graalvm/compiler/core/common/LIRKind;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 17
14: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Interval %d has no type assigned"
aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
15: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 6
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
16: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
ifnonnull 21
18: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Interval %d has no register assigned"
aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
19: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 6
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
20: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.first:()Lorg/graalvm/compiler/lir/alloc/lsra/Range;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Range.isEndMarker:()Z
ifeq 25
22: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Interval %d has no Range"
aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
23: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 6
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
24: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.first:()Lorg/graalvm/compiler/lir/alloc/lsra/Range;
astore 7
start local 7 26: goto 32
27: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Range
StackMap stack:
aload 7
getfield org.graalvm.compiler.lir.alloc.lsra.Range.from:I
aload 7
getfield org.graalvm.compiler.lir.alloc.lsra.Range.to:I
if_icmplt 31
28: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "Interval %d has zero length range"
aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
29: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
aload 6
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
30: new org.graalvm.compiler.debug.GraalError
dup
ldc ""
invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;)V
athrow
31: StackMap locals:
StackMap stack:
aload 7
getfield org.graalvm.compiler.lir.alloc.lsra.Range.next:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
astore 7
StackMap locals:
StackMap stack:
32: aload 7
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Range.isEndMarker:()Z
ifeq 27
end local 7 33: iload 5
iconst_1
iadd
istore 7
start local 7 34: goto 49
35: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int int org.graalvm.compiler.lir.alloc.lsra.Interval int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervals:[Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
iload 7
aaload
astore 8
start local 8 36: aload 8
ifnonnull 38
37: goto 48
38: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
iconst_1
if_icmpne 40
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.to:()I
iconst_2
if_icmpne 40
39: goto 48
40: StackMap locals:
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
iconst_1
if_icmpne 42
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.to:()I
iconst_2
if_icmpne 42
41: goto 48
42: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 9
start local 9 43: aload 8
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 10
start local 10 44: aload 6
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.intersects:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)Z
ifeq 48
aload 9
invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
ifne 48
aload 9
aload 10
invokevirtual jdk.vm.ci.meta.Value.equals:(Ljava/lang/Object;)Z
ifeq 48
45: ldc "Intervals %d and %d overlap and have the same register assigned\n%s\n%s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 8
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
46: aload 6
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
aastore
dup
iconst_3
aload 8
aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
aastore
47: 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 10 end local 9 end local 8 48: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
49: iload 7
iload 4
if_icmplt 35
end local 7 end local 6 50: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
51: iload 5
iload 4
if_icmplt 5
end local 5 end local 4 52: aload 3
ifnull 58
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 58
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
53: astore 1
aload 3
ifnull 54
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 3 StackMap locals:
StackMap stack:
54: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
55: astore 2
aload 1
ifnonnull 56
aload 2
astore 1
goto 57
StackMap locals:
StackMap stack:
56: aload 1
aload 2
if_acmpeq 57
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
57: aload 1
athrow
58: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
2 54 3 indent Lorg/graalvm/compiler/debug/Indent;
3 52 4 len I
4 52 5 i I
6 50 6 i1 Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
26 33 7 r Lorg/graalvm/compiler/lir/alloc/lsra/Range;
34 50 7 j I
36 48 8 i2 Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
43 48 9 l1 Ljdk/vm/ci/meta/Value;
44 48 10 l2 Ljdk/vm/ci/meta/Value;
Exception table:
from to target type
2 52 53 any
1 55 55 any
void verifyNoOopsInFixedIntervals();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=17, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.debug:Lorg/graalvm/compiler/debug/DebugContext;
ldc "verifying that no oops are in fixed intervals *"
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.lsra.LinearScan$CheckConsumer
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
astore 4
start local 4 3: aload 0
getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_PRECOLORED_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
aconst_null
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.createUnhandledLists:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;)Ljdk/internal/vm/compiler/collections/Pair;
invokevirtual jdk.internal.vm.compiler.collections.Pair.getLeft:()Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.alloc.lsra.Interval
astore 5
start local 5 4: new org.graalvm.compiler.lir.alloc.lsra.Interval
dup
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
iconst_m1
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.intervalEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.rangeEndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Range;
invokespecial org.graalvm.compiler.lir.alloc.lsra.Interval.<init>:(Ljdk/vm/ci/meta/AllocatableValue;ILorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Range;)V
astore 6
start local 6 5: aload 6
ldc 2147483645
ldc 2147483646
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.addRange:(II)V
6: new org.graalvm.compiler.lir.alloc.lsra.IntervalWalker
dup
aload 0
aload 5
aload 6
invokespecial org.graalvm.compiler.lir.alloc.lsra.IntervalWalker.<init>:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
astore 7
start local 7 7: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 32
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.IntervalWalker top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
8: aload 11
iload 9
aaload
astore 8
start local 8 9: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
aload 8
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 12
start local 12 10: iconst_0
istore 13
start local 13 11: goto 30
12: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.IntervalWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.util.ArrayList int
StackMap stack:
aload 12
iload 13
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 14
start local 14 13: aload 14
invokevirtual org.graalvm.compiler.lir.LIRInstruction.hasState:()Z
ifeq 29
14: aload 7
aload 14
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
invokevirtual org.graalvm.compiler.lir.alloc.lsra.IntervalWalker.walkBefore:(I)V
15: iconst_1
istore 15
start local 15 16: iload 15
ifeq 29
17: aload 7
getfield org.graalvm.compiler.lir.alloc.lsra.IntervalWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Fixed:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.get:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 16
start local 16 18: goto 28
19: StackMap locals: org.graalvm.compiler.lir.LIRInstruction int org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
aload 16
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.currentTo:()I
aload 14
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
iconst_1
iadd
if_icmple 27
20: aload 4
aload 16
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.curInterval:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
21: aload 4
iconst_0
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.ok:Z
22: aload 14
aload 4
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachInput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
23: aload 14
aload 4
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachAlive:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
24: aload 14
aload 4
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachTemp:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
25: aload 14
aload 4
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachOutput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
26: getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.$assertionsDisabled:Z
ifne 27
aload 4
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer.ok:Z
ifne 27
new java.lang.AssertionError
dup
ldc "fixed intervals should never be live across an oopmap point"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
27: StackMap locals:
StackMap stack:
aload 16
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 16
StackMap locals:
StackMap stack:
28: aload 16
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isEndMarker:()Z
ifeq 19
end local 16 end local 15 end local 14 29: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
30: iload 13
aload 12
invokevirtual java.util.ArrayList.size:()I
if_icmplt 12
end local 13 end local 12 end local 8 31: iinc 9 1
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.IntervalWalker top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
32: iload 9
iload 10
if_icmplt 8
end local 7 end local 6 end local 5 end local 4 33: aload 3
ifnull 39
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 39
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScan java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
34: astore 1
aload 3
ifnull 35
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 3 StackMap locals:
StackMap stack:
35: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
36: astore 2
aload 1
ifnonnull 37
aload 2
astore 1
goto 38
StackMap locals:
StackMap stack:
37: aload 1
aload 2
if_acmpeq 38
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
38: aload 1
athrow
39: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
2 35 3 indent Lorg/graalvm/compiler/debug/Indent;
3 33 4 checkConsumer Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$CheckConsumer;
4 33 5 fixedIntervals Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
5 33 6 otherIntervals Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
7 33 7 iw Lorg/graalvm/compiler/lir/alloc/lsra/IntervalWalker;
9 31 8 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
10 31 12 instructions Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
11 31 13 j I
13 29 14 op Lorg/graalvm/compiler/lir/LIRInstruction;
16 29 15 checkLive Z
18 29 16 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
Exception table:
from to target type
2 33 34 any
1 36 36 any
public org.graalvm.compiler.lir.LIR getLIR();
descriptor: ()Lorg/graalvm/compiler/lir/LIR;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScan.ir:Lorg/graalvm/compiler/lir/LIR;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
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.lsra.LinearScan.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/lsra/LinearScan;
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.lsra.LinearScan.sortedBlocks:[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/lsra/LinearScan;
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.lsra.LinearScan.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/lsra/LinearScan;
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.lsra.LinearScan.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/lsra/LinearScan;
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.lsra.LinearScan.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/lsra/LinearScan;
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.lsra.LinearScan.neverSpillConstants:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
private static int lambda$0(org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
0 1 1 b Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
}
SourceFile: "LinearScan.java"
NestMembers:
org.graalvm.compiler.lir.alloc.lsra.LinearScan$1 org.graalvm.compiler.lir.alloc.lsra.LinearScan$2 org.graalvm.compiler.lir.alloc.lsra.LinearScan$3 org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate org.graalvm.compiler.lir.alloc.lsra.LinearScan$Options
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
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
final RegisterBinding = org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding of org.graalvm.compiler.lir.alloc.lsra.Interval
final RegisterBindingLists = org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists of org.graalvm.compiler.lir.alloc.lsra.Interval
org.graalvm.compiler.lir.alloc.lsra.LinearScan$1
org.graalvm.compiler.lir.alloc.lsra.LinearScan$2
org.graalvm.compiler.lir.alloc.lsra.LinearScan$3
public BlockData = org.graalvm.compiler.lir.alloc.lsra.LinearScan$BlockData of org.graalvm.compiler.lir.alloc.lsra.LinearScan
CheckConsumer = org.graalvm.compiler.lir.alloc.lsra.LinearScan$CheckConsumer of org.graalvm.compiler.lir.alloc.lsra.LinearScan
abstract IntervalPredicate = org.graalvm.compiler.lir.alloc.lsra.LinearScan$IntervalPredicate of org.graalvm.compiler.lir.alloc.lsra.LinearScan
public Options = org.graalvm.compiler.lir.alloc.lsra.LinearScan$Options of org.graalvm.compiler.lir.alloc.lsra.LinearScan
public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool
public final AllocationContext = org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext of org.graalvm.compiler.lir.phases.AllocationPhase