public final class org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase extends org.graalvm.compiler.lir.phases.AllocationPhase
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase
super_class: org.graalvm.compiler.lir.phases.AllocationPhase
{
private final org.graalvm.compiler.lir.alloc.lsra.LinearScan allocator;
descriptor: Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(org.graalvm.compiler.lir.alloc.lsra.LinearScan);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.graalvm.compiler.lir.phases.AllocationPhase.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
0 3 1 allocator Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
MethodParameters:
Name Flags
allocator
protected void run(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=2, 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.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
ldc "Before register allocation"
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.printIntervals:(Ljava/lang/String;)V
1: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocateRegisters:()V
2: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
ldc "After register allocation"
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.printIntervals:(Ljava/lang/String;)V
3: return
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/LinearScanRegisterAllocationPhase;
0 4 1 target Ljdk/vm/ci/code/TargetDescription;
0 4 2 lirGenRes Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;
0 4 3 context Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;
MethodParameters:
Name Flags
target
lirGenRes
context
void allocateRegisters();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: ldc "allocate registers"
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_PRECOLORED_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
getstatic org.graalvm.compiler.lir.alloc.lsra.LinearScan.IS_VARIABLE_INTERVAL:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan$IntervalPredicate;
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;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval$Pair;
astore 6
start local 6 3: aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval$Pair.first:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 4
start local 4 4: aload 6
getfield org.graalvm.compiler.lir.alloc.lsra.Interval$Pair.second:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 5
start local 5 5: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options.LSRAOptimization:Lorg/graalvm/compiler/options/OptionValue;
invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 8
6: new org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker
dup
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
aload 4
aload 5
invokespecial org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.<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: goto 9
end local 7 8: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval org.graalvm.compiler.lir.alloc.lsra.Interval$Pair
StackMap stack:
new org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker
dup
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
aload 4
aload 5
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.<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 9: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker
StackMap stack:
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.walk:()V
10: aload 7
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.finishAllocation:()V
end local 7 end local 6 end local 5 end local 4 11: aload 3
ifnull 17
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 17
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
12: astore 1
aload 3
ifnull 13
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 3 StackMap locals:
StackMap stack:
13: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 2
aload 1
ifnonnull 15
aload 2
astore 1
goto 16
StackMap locals:
StackMap stack:
15: aload 1
aload 2
if_acmpeq 16
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 1
athrow
17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanRegisterAllocationPhase;
2 13 3 indent Lorg/graalvm/compiler/debug/Indent;
4 11 4 precoloredIntervals Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
5 11 5 notPrecoloredIntervals Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
3 11 6 result Lorg/graalvm/compiler/lir/alloc/lsra/Interval$Pair;
7 8 7 lsw Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanWalker;
9 11 7 lsw Lorg/graalvm/compiler/lir/alloc/lsra/LinearScanWalker;
Exception table:
from to target type
2 11 12 any
1 14 14 any
protected void run(jdk.vm.ci.code.TargetDescription, org.graalvm.compiler.lir.gen.LIRGenerationResult, java.lang.Object);
descriptor: (Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Ljava/lang/Object;)V
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
0: aload 0
aload 1
aload 2
aload 3
checkcast org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScanRegisterAllocationPhase.run:(Ljdk/vm/ci/code/TargetDescription;Lorg/graalvm/compiler/lir/gen/LIRGenerationResult;Lorg/graalvm/compiler/lir/phases/AllocationPhase$AllocationContext;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "LinearScanRegisterAllocationPhase.java"
InnerClasses:
final Pair = org.graalvm.compiler.lir.alloc.lsra.Interval$Pair of org.graalvm.compiler.lir.alloc.lsra.Interval
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.OptimizingLinearScanWalker$Options of org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker
public final AllocationContext = org.graalvm.compiler.lir.phases.AllocationPhase$AllocationContext of org.graalvm.compiler.lir.phases.AllocationPhase