public class org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker extends org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker
super_class: org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
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.OptimizingLinearScanWalker.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.compiler.lir.alloc.lsra.LinearScan, org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
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
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
0 2 1 allocator Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
0 2 2 unhandledFixedFirst Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
0 2 3 unhandledAnyFirst Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
MethodParameters:
Name Flags
allocator
unhandledFixedFirst
unhandledAnyFirst
protected void handleSpillSlot(org.graalvm.compiler.lir.alloc.lsra.Interval);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
ifnonnull 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "interval not assigned "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.canMaterialize:()Z
ifeq 4
2: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 3
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifeq 3
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "interval can materialize but assigned to a stack slot "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
return
4: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 5
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifne 5
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "interval not assigned to a stack slot "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals:
StackMap stack:
aconst_null
astore 2
aconst_null
astore 3
6: ldc "LSRAOptimization"
invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
astore 4
start local 4 7: ldc "adding stack to unhandled list %s"
aload 1
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
8: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.unhandledLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Stack:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.addToListSortedByStartAndUsePositions:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
9: aload 4
ifnull 15
aload 4
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
goto 15
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
StackMap stack: java.lang.Throwable
10: astore 2
aload 4
ifnull 11
aload 4
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
end local 4 StackMap locals:
StackMap stack:
11: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 3
aload 2
ifnonnull 13
aload 3
astore 2
goto 14
StackMap locals:
StackMap stack:
13: aload 2
aload 3
if_acmpeq 14
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 2
athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
0 16 1 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
7 11 4 s1 Lorg/graalvm/compiler/debug/Debug$Scope;
Exception table:
from to target type
7 9 10 any
6 12 12 any
MethodParameters:
Name Flags
interval
private static void printRegisterBindingList(org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists, org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
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.Interval$RegisterBindingLists.get:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 2
start local 2 1: goto 4
2: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
ldc "%s"
aload 2
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
3: aload 2
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 2
StackMap locals:
StackMap stack:
4: aload 2
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
if_acmpne 2
end local 2 5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 list Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
0 6 1 binding Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
1 5 2 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
MethodParameters:
Name Flags
list
binding
void walk();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=8, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: ldc "OptimizingLinearScanWalker"
invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
astore 3
start local 3 2: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.sortedBlocks:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 6
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: aload 0
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.optimizeBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
end local 4 5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 6
if_icmplt 3
7: aload 3
ifnull 13
aload 3
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
goto 13
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
StackMap stack: java.lang.Throwable
8: astore 1
aload 3
ifnull 9
aload 3
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
end local 3 StackMap locals:
StackMap stack:
9: aload 1
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 2
aload 1
ifnonnull 11
aload 2
astore 1
goto 12
StackMap locals:
StackMap stack:
11: aload 1
aload 2
if_acmpeq 12
aload 1
aload 2
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
12: aload 1
athrow
13: StackMap locals:
StackMap stack:
aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.walk:()V
14: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
2 9 3 s Lorg/graalvm/compiler/debug/Debug$Scope;
4 5 4 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
Exception table:
from to target type
2 7 8 any
1 10 10 any
private void optimizeBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=14, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessorCount:()I
iconst_1
if_icmpne 58
1: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getFirstLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
istore 2
start local 2 2: aconst_null
astore 3
aconst_null
astore 4
3: ldc "LSRAOptimization"
invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
astore 5
start local 5 4: ldc "next block: %s (%d)"
aload 1
iload 2
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;I)V
5: aload 5
ifnull 11
aload 5
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
goto 11
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope
StackMap stack: java.lang.Throwable
6: astore 3
aload 5
ifnull 7
aload 5
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
end local 5 StackMap locals:
StackMap stack:
7: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 4
aload 3
ifnonnull 9
aload 4
astore 3
goto 10
StackMap locals:
StackMap stack:
9: aload 3
aload 4
if_acmpeq 10
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 3
athrow
11: StackMap locals:
StackMap stack:
aconst_null
astore 3
aconst_null
astore 4
12: invokestatic org.graalvm.compiler.debug.Debug.indent:()Lorg/graalvm/compiler/debug/Indent;
astore 5
start local 5 13: aload 0
iload 2
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.walkTo:(I)V
14: aconst_null
astore 6
aconst_null
astore 7
15: ldc "LSRAOptimization"
invokestatic org.graalvm.compiler.debug.Debug.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Debug$Scope;
astore 8
start local 8 16: iconst_1
istore 9
start local 9 17: goto 45
18: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope int
StackMap stack:
iconst_0
istore 9
19: aconst_null
astore 10
aconst_null
astore 11
20: ldc "Active intervals: (block %s [%d])"
aload 1
iload 2
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;I)Lorg/graalvm/compiler/debug/Indent;
astore 12
start local 12 21: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Any: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 13
start local 13 22: goto 29
23: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
ldc "active (any): %s"
aload 13
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
24: aload 0
iload 2
aload 1
aload 13
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Any:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.optimize:(ILorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Z
ifeq 28
25: iconst_1
istore 9
26: aload 12
ifnull 46
aload 12
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
27: goto 46
28: StackMap locals:
StackMap stack:
aload 13
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 13
StackMap locals:
StackMap stack:
29: aload 13
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
if_acmpne 23
end local 13 30: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Stack: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 13
start local 13 31: goto 38
32: StackMap locals:
StackMap stack:
ldc "active (stack): %s"
aload 13
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
33: aload 0
iload 2
aload 1
aload 13
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Stack:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.optimize:(ILorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Z
ifeq 37
34: iconst_1
istore 9
35: aload 12
ifnull 46
aload 12
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
36: goto 46
37: StackMap locals:
StackMap stack:
aload 13
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.next:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 13
StackMap locals:
StackMap stack:
38: aload 13
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
if_acmpne 32
end local 13 39: aload 12
ifnull 45
aload 12
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 45
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.core.common.cfg.AbstractBlockBase int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Debug$Scope int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
40: astore 10
aload 12
ifnull 41
aload 12
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 12 StackMap locals:
StackMap stack:
41: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
42: astore 11
aload 10
ifnonnull 43
aload 11
astore 10
goto 44
StackMap locals:
StackMap stack:
43: aload 10
aload 11
if_acmpeq 44
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
44: aload 10
athrow
45: StackMap locals:
StackMap stack:
iload 9
ifne 18
end local 9 46: StackMap locals:
StackMap stack:
aload 8
ifnull 52
aload 8
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
goto 52
StackMap locals:
StackMap stack: java.lang.Throwable
47: astore 6
aload 8
ifnull 48
aload 8
invokeinterface org.graalvm.compiler.debug.Debug$Scope.close:()V
end local 8 StackMap locals:
StackMap stack:
48: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
49: astore 7
aload 6
ifnonnull 50
aload 7
astore 6
goto 51
StackMap locals:
StackMap stack:
50: aload 6
aload 7
if_acmpeq 51
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
51: aload 6
athrow
52: StackMap locals:
StackMap stack:
aload 5
ifnull 58
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 58
StackMap locals:
StackMap stack: java.lang.Throwable
53: astore 3
aload 5
ifnull 54
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 5 StackMap locals:
StackMap stack:
54: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
55: astore 4
aload 3
ifnonnull 56
aload 4
astore 3
goto 57
StackMap locals:
StackMap stack:
56: aload 3
aload 4
if_acmpeq 57
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
57: aload 3
athrow
end local 2 58: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
0 59 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
2 58 2 nextBlock I
4 7 5 s1 Lorg/graalvm/compiler/debug/Debug$Scope;
13 54 5 indent0 Lorg/graalvm/compiler/debug/Indent;
16 48 8 s1 Lorg/graalvm/compiler/debug/Debug$Scope;
17 46 9 changed Z
21 41 12 indent1 Lorg/graalvm/compiler/debug/Indent;
22 30 13 active Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
31 39 13 active Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
Exception table:
from to target type
4 5 6 any
3 8 8 any
21 26 40 any
28 35 40 any
37 39 40 any
20 27 42 any
28 36 42 any
37 42 42 any
16 46 47 any
15 49 49 any
13 52 53 any
12 55 55 any
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
block
private boolean optimize(int, org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.alloc.lsra.Interval, org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding);
descriptor: (ILorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=14, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 1
new java.lang.AssertionError
dup
ldc "block must not be null"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 2
aload 3
ifnonnull 2
new java.lang.AssertionError
dup
ldc "interval must not be null"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 3
aload 2
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessorCount:()I
iconst_1
if_icmpeq 3
new java.lang.AssertionError
dup
ldc "more than one predecessors -> optimization not possible"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.isSplitChild:()Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
iload 1
if_icmpne 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 5
start local 5 8: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 9
aload 5
ifnonnull 9
new java.lang.AssertionError
dup
ldc "active intervals must have a location assigned!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: StackMap locals: jdk.vm.ci.meta.AllocatableValue
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
iconst_0
aaload
astore 6
start local 6 10: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.getLastLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
istore 7
start local 7 11: aload 3
iload 7
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.getIntervalCoveringOpId:(I)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 8
start local 8 12: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 13
aload 8
ifnonnull 13
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "variable not live at the end of the only predecessor! "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " -> "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " interval: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals: org.graalvm.compiler.core.common.cfg.AbstractBlockBase int org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.location:()Ljdk/vm/ci/meta/AllocatableValue;
astore 9
start local 9 14: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 15
aload 9
ifnonnull 15
new java.lang.AssertionError
dup
ldc "handled intervals must have a location assigned!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
15: StackMap locals: jdk.vm.ci.meta.AllocatableValue
StackMap stack:
aload 5
aload 9
invokevirtual jdk.vm.ci.meta.AllocatableValue.equals:(Ljava/lang/Object;)Z
ifeq 17
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 9
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifne 20
aload 9
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifne 20
18: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 19
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.canMaterialize:()Z
ifne 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
iconst_0
ireturn
20: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 21
aload 5
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifne 21
aload 5
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifne 21
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "current location not a register or stack slot "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
21: StackMap locals:
StackMap stack:
aconst_null
astore 10
aconst_null
astore 11
22: ldc "location differs: %s vs. %s"
aload 9
aload 5
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/Indent;
astore 12
start local 12 23: ldc "splitting at position %d"
iload 1
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
24: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 26
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
iload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.LinearScan.isBlockBegin:(I)Z
ifeq 25
iload 1
iconst_1
iand
ifeq 26
StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack:
25: new java.lang.AssertionError
dup
ldc "split pos must be even when on block boundary"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
26: StackMap locals:
StackMap stack:
aload 3
iload 1
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.split:(ILorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
astore 13
start local 13 27: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
aload 4
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.remove:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
28: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 29
aload 13
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.currentPosition:I
if_icmpge 29
new java.lang.AssertionError
dup
ldc "cannot append new interval before current walk position"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
29: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.Interval
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 30
aload 13
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.currentSplitChild:()Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
aload 3
if_acmpeq 30
new java.lang.AssertionError
dup
ldc "overwriting wrong currentSplitChild"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
30: StackMap locals:
StackMap stack:
aload 13
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.makeCurrentSplitChild:()V
31: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 34
32: ldc "left interval : %s"
aload 3
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
33: ldc "right interval : %s"
aload 13
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.allocator:Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.logString:(Lorg/graalvm/compiler/lir/alloc/lsra/LinearScan;)Ljava/lang/String;
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
34: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options.LSRAOptSplitOnly: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 37
35: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.unhandledLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Any:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
aload 13
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.addToListSortedByStartAndUsePositions:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
36: goto 46
37: StackMap locals:
StackMap stack:
aload 9
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifeq 40
38: aload 0
aload 13
aload 9
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.splitRegisterInterval:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Ljdk/vm/ci/code/Register;)V
39: goto 46
40: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 41
aload 9
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifne 41
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
41: StackMap locals:
StackMap stack:
ldc "assigning interval %s to %s"
aload 13
aload 9
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
42: aload 13
aload 9
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
43: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Stack:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
aload 13
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.addToListSortedByCurrentFromPositions:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
44: aload 13
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$State.Active:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$State;
putfield org.graalvm.compiler.lir.alloc.lsra.Interval.state:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$State;
45: aload 0
aload 13
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.splitStackInterval:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
end local 13 46: StackMap locals:
StackMap stack:
aload 12
ifnull 52
aload 12
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 52
StackMap locals:
StackMap stack: java.lang.Throwable
47: astore 10
aload 12
ifnull 48
aload 12
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 12 StackMap locals:
StackMap stack:
48: aload 10
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
49: astore 11
aload 10
ifnonnull 50
aload 11
astore 10
goto 51
StackMap locals:
StackMap stack:
50: aload 10
aload 11
if_acmpeq 51
aload 10
aload 11
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
51: aload 10
athrow
52: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 9 end local 8 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 53 0 this Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
0 53 1 currentPos I
0 53 2 currentBlock Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
0 53 3 currentInterval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
0 53 4 binding Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
8 53 5 currentLocation Ljdk/vm/ci/meta/AllocatableValue;
10 53 6 predecessorBlock Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
11 53 7 predEndId I
12 53 8 predecessorInterval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
14 53 9 predecessorLocation Ljdk/vm/ci/meta/AllocatableValue;
23 48 12 indent Lorg/graalvm/compiler/debug/Indent;
27 46 13 splitPart Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
Exception table:
from to target type
23 46 47 any
22 49 49 any
Signature: (ILorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;)Z
MethodParameters:
Name Flags
currentPos
currentBlock
currentInterval
binding
private void splitRegisterInterval(org.graalvm.compiler.lir.alloc.lsra.Interval, jdk.vm.ci.code.Register);
descriptor: (Lorg/graalvm/compiler/lir/alloc/lsra/Interval;Ljdk/vm/ci/code/Register;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.initVarsForAlloc:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
1: aload 0
iconst_0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.initUseLists:(Z)V
2: aload 0
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillExcludeActiveFixed:()V
3: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 4
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.unhandledLists: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;
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval.EndMarker:Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
if_acmpeq 4
new java.lang.AssertionError
dup
ldc "must not have unhandled fixed intervals because all fixed intervals have a use at position 0"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillBlockInactiveFixed:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
5: aload 0
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterPriority.LiveAtLoopEnd:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterPriority;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillCollectActiveAny:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterPriority;)V
6: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillCollectInactiveAny:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
7: invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
ifeq 34
8: aconst_null
astore 3
aconst_null
astore 4
9: ldc "state of registers:"
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 5
start local 5 10: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.availableRegs:[Ljdk/vm/ci/code/Register;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 27
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int jdk.vm.ci.code.Register[]
StackMap stack:
11: aload 9
iload 7
aaload
astore 6
start local 6 12: aload 6
getfield jdk.vm.ci.code.Register.number:I
istore 10
start local 10 13: aconst_null
astore 11
aconst_null
astore 12
14: ldc "reg %d: usePos: %d, blockPos: %d, intervals: "
iload 10
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.usePos:[I
iload 10
iaload
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.blockPos:[I
iload 10
iaload
invokestatic org.graalvm.compiler.debug.Debug.logAndIndent:(Ljava/lang/String;III)Lorg/graalvm/compiler/debug/Indent;
astore 13
start local 13 15: iconst_0
istore 14
start local 14 16: goto 19
17: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent jdk.vm.ci.code.Register int int jdk.vm.ci.code.Register[] int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int
StackMap stack:
ldc "%d "
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillIntervals:[Ljava/util/List;
iload 10
aaload
iload 14
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.alloc.lsra.Interval
getfield org.graalvm.compiler.lir.alloc.lsra.Interval.operandNumber:I
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;I)V
18: iinc 14 1
StackMap locals:
StackMap stack:
19: iload 14
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.spillIntervals:[Ljava/util/List;
iload 10
aaload
invokeinterface java.util.List.size:()I
if_icmplt 17
end local 14 20: aload 13
ifnull 26
aload 13
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 26
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent jdk.vm.ci.code.Register int int jdk.vm.ci.code.Register[] int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
21: astore 11
aload 13
ifnull 22
aload 13
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 13 StackMap locals:
StackMap stack:
22: aload 11
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 12
aload 11
ifnonnull 24
aload 12
astore 11
goto 25
StackMap locals:
StackMap stack:
24: aload 11
aload 12
if_acmpeq 25
aload 11
aload 12
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 11
athrow
end local 10 end local 6 26: StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int jdk.vm.ci.code.Register[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
27: iload 7
iload 8
if_icmplt 11
28: aload 5
ifnull 34
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 34
StackMap locals: org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker org.graalvm.compiler.lir.alloc.lsra.Interval jdk.vm.ci.code.Register java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
29: astore 3
aload 5
ifnull 30
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 5 StackMap locals:
StackMap stack:
30: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
31: astore 4
aload 3
ifnonnull 32
aload 4
astore 3
goto 33
StackMap locals:
StackMap stack:
32: aload 3
aload 4
if_acmpeq 33
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
33: aload 3
athrow
34: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.blockPos:[I
aload 2
getfield jdk.vm.ci.code.Register.number:I
iaload
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.to:()I
if_icmpgt 35
iconst_1
goto 36
StackMap locals:
StackMap stack:
35: iconst_0
StackMap locals:
StackMap stack: int
36: istore 3
start local 3 37: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.blockPos:[I
aload 2
getfield jdk.vm.ci.code.Register.number:I
iaload
istore 4
start local 4 38: getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 39
iload 4
ifgt 39
new java.lang.AssertionError
dup
ldc "invalid splitPos"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
39: StackMap locals: int int
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.$assertionsDisabled:Z
ifne 40
iload 3
ifne 40
iload 4
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.from:()I
if_icmpgt 40
new java.lang.AssertionError
dup
ldc "splitting interval at from"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
40: StackMap locals:
StackMap stack:
ldc "assigning interval %s to %s"
aload 1
aload 2
invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
41: aload 1
aload 2
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.kind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval.assignLocation:(Ljdk/vm/ci/meta/AllocatableValue;)V
42: iload 3
ifeq 44
43: aload 0
aload 1
iload 4
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.splitWhenPartialRegisterAvailable:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval;I)V
44: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.splitAndSpillIntersectingIntervals:(Ljdk/vm/ci/code/Register;)V
45: aload 0
getfield org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker.activeLists:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBindingLists;
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBinding.Any:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterBindingLists.addToListSortedByCurrentFromPositions:(Lorg/graalvm/compiler/lir/alloc/lsra/Interval$RegisterBinding;Lorg/graalvm/compiler/lir/alloc/lsra/Interval;)V
46: aload 1
getstatic org.graalvm.compiler.lir.alloc.lsra.Interval$State.Active:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$State;
putfield org.graalvm.compiler.lir.alloc.lsra.Interval.state:Lorg/graalvm/compiler/lir/alloc/lsra/Interval$State;
47: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Lorg/graalvm/compiler/lir/alloc/lsra/OptimizingLinearScanWalker;
0 48 1 interval Lorg/graalvm/compiler/lir/alloc/lsra/Interval;
0 48 2 reg Ljdk/vm/ci/code/Register;
10 30 5 indent2 Lorg/graalvm/compiler/debug/Indent;
12 26 6 register Ljdk/vm/ci/code/Register;
13 26 10 i I
15 22 13 indent3 Lorg/graalvm/compiler/debug/Indent;
16 20 14 j I
37 48 3 needSplit Z
38 48 4 splitPos I
Exception table:
from to target type
15 20 21 any
14 23 23 any
10 28 29 any
9 31 31 any
MethodParameters:
Name Flags
interval
reg
public void finishAllocation();
descriptor: ()V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokespecial org.graalvm.compiler.lir.alloc.lsra.LinearScanWalker.finishAllocation:()V
return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "OptimizingLinearScanWalker.java"
NestMembers:
org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options
InnerClasses:
public abstract Scope = org.graalvm.compiler.debug.Debug$Scope of org.graalvm.compiler.debug.Debug
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
public final RegisterPriority = org.graalvm.compiler.lir.alloc.lsra.Interval$RegisterPriority of org.graalvm.compiler.lir.alloc.lsra.Interval
final State = org.graalvm.compiler.lir.alloc.lsra.Interval$State of org.graalvm.compiler.lir.alloc.lsra.Interval
public Options = org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker$Options of org.graalvm.compiler.lir.alloc.lsra.OptimizingLinearScanWalker