final class org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner
super_class: java.lang.Object
{
private final org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan allocator;
descriptor: Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory spillMoveFactory;
descriptor: Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.InstructionValueProcedure assignProc;
descriptor: Lorg/graalvm/compiler/lir/InstructionValueProcedure;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.lir.InstructionValueProcedure debugInfoValueProc;
descriptor: Lorg/graalvm/compiler/lir/InstructionValueProcedure;
flags: (0x0012) ACC_PRIVATE, 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=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan, org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory);
descriptor: (Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner$1
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner$1.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;)V
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
2: aload 0
new org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner$2
dup
aload 0
invokespecial org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner$2.<init>:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;)V
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.debugInfoValueProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
3: aload 0
aload 1
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
4: aload 0
aload 2
putfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.spillMoveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 6 1 allocator Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
0 6 2 spillMoveFactory Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
MethodParameters:
Name Flags
allocator
spillMoveFactory
private jdk.vm.ci.meta.Value colorLirOperand(org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.lir.Variable, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/Variable;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
istore 4
start local 4 1: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalFor:(Lorg/graalvm/compiler/lir/Variable;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 5
start local 5 2: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
ifne 3
aload 5
ifnonnull 3
new java.lang.AssertionError
dup
ldc "interval must exist"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals: int org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
iload 4
iconst_m1
if_icmpeq 5
4: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 5
iload 4
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.splitChildAtOpId:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 5
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 5
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.getLocation:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 6 1 op Lorg/graalvm/compiler/lir/LIRInstruction;
0 6 2 operand Lorg/graalvm/compiler/lir/Variable;
0 6 3 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
1 6 4 opId I
2 6 5 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
op
operand
mode
private jdk.vm.ci.meta.Value getLocation(org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic jdk.vm.ci.code.ValueUtil.isIllegal:(Ljdk/vm/ci/meta/Value;)Z
ifeq 5
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.canMaterialize:()Z
ifeq 5
1: aload 1
instanceof org.graalvm.compiler.lir.StandardOp$LabelOp
ifeq 3
2: getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
areturn
3: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
ifne 4
aload 3
getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
if_acmpne 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
new org.graalvm.compiler.lir.ConstantValue
dup
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getKind:(Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;)Ljdk/vm/ci/meta/ValueKind;
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.getMaterializedValue:()Ljdk/vm/ci/meta/JavaConstant;
invokespecial org.graalvm.compiler.lir.ConstantValue.<init>:(Ljdk/vm/ci/meta/ValueKind;Ljdk/vm/ci/meta/Constant;)V
areturn
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 6 1 op Lorg/graalvm/compiler/lir/LIRInstruction;
0 6 2 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
0 6 3 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
MethodParameters:
Name Flags
op
interval
mode
private jdk.vm.ci.meta.Value debugInfoProcedure(org.graalvm.compiler.lir.LIRInstruction, jdk.vm.ci.meta.Value, org.graalvm.compiler.lir.LIRInstruction$OperandMode, java.util.EnumSet<org.graalvm.compiler.lir.LIRInstruction$OperandFlag>);
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet;)Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVirtualStackSlot:(Ljdk/vm/ci/meta/Value;)Z
ifeq 2
1: aload 2
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
istore 5
start local 5 3: getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.USE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
astore 6
start local 6 4: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
iload 5
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.blockForId:(I)Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 7
start local 7 5: aload 7
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getSuccessorCount:()I
iconst_1
if_icmpne 9
iload 5
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLastLirInstructionId:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)I
if_icmpne 9
6: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 7
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 7
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 8
start local 8 7: aload 8
instanceof org.graalvm.compiler.lir.StandardOp$JumpOp
ifeq 9
8: ldc "DebugInfo on jumps are not supported!"
invokestatic org.graalvm.compiler.debug.GraalError.unimplemented:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 8 9: StackMap locals: int org.graalvm.compiler.lir.LIRInstruction$OperandMode org.graalvm.compiler.core.common.cfg.AbstractBlockBase
StackMap stack:
aload 0
aload 1
aload 2
checkcast org.graalvm.compiler.lir.Variable
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.colorLirOperand:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/Variable;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
astore 8
start local 8 10: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
ifne 11
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
iload 5
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.hasCall:(I)Z
ifeq 11
aload 8
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifne 11
aload 8
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isConstantValue:(Ljdk/vm/ci/meta/Value;)Z
ifne 11
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 8
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.isCallerSave:(Ljdk/vm/ci/meta/Value;)Z
ifeq 11
new java.lang.AssertionError
dup
ldc "cannot have caller-save register operands at calls"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
11: StackMap locals: jdk.vm.ci.meta.Value
StackMap stack:
aload 8
areturn
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 12 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 12 1 op Lorg/graalvm/compiler/lir/LIRInstruction;
0 12 2 operand Ljdk/vm/ci/meta/Value;
0 12 3 valueMode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
0 12 4 flags Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;
3 12 5 tempOpId I
4 12 6 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
5 12 7 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
7 9 8 instr Lorg/graalvm/compiler/lir/LIRInstruction;
10 12 8 result Ljdk/vm/ci/meta/Value;
Signature: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljdk/vm/ci/meta/Value;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;Ljava/util/EnumSet<Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;>;)Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
op
operand
valueMode
flags
private void assignBlock(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 1: aconst_null
astore 3
aconst_null
astore 4
2: aload 2
ldc "assign locations in block B%d"
aload 1
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;I)Lorg/graalvm/compiler/debug/Indent;
astore 5
start local 5 3: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 6
start local 6 4: aload 0
aload 1
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.handleBlockBegin:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/ArrayList;)V
5: aload 6
invokevirtual java.util.ArrayList.size:()I
istore 7
start local 7 6: iconst_0
istore 8
start local 8 7: iconst_0
istore 9
start local 9 8: goto 16
9: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.util.ArrayList int int int
StackMap stack:
aload 6
iload 9
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 10
start local 10 10: aload 10
ifnonnull 13
11: iconst_1
istore 8
12: goto 15
StackMap locals: org.graalvm.compiler.lir.LIRInstruction
StackMap stack:
13: aload 0
aload 10
aload 6
iload 9
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.assignLocations:(Lorg/graalvm/compiler/lir/LIRInstruction;Ljava/util/ArrayList;I)Z
ifeq 15
14: iconst_1
istore 8
end local 10 15: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
16: iload 9
iload 7
if_icmplt 9
end local 9 17: aload 0
aload 1
aload 6
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.handleBlockEnd:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/ArrayList;)V
18: iload 8
ifeq 20
19: aload 6
aconst_null
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
invokevirtual java.util.ArrayList.removeAll:(Ljava/util/Collection;)Z
pop
end local 8 end local 7 end local 6 20: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner org.graalvm.compiler.core.common.cfg.AbstractBlockBase org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack:
aload 5
ifnull 26
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 3
aload 5
ifnull 22
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 5 StackMap locals:
StackMap stack:
22: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 4
aload 3
ifnonnull 24
aload 4
astore 3
goto 25
StackMap locals:
StackMap stack:
24: aload 3
aload 4
if_acmpeq 25
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
25: aload 3
athrow
26: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 27 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
1 27 2 debug Lorg/graalvm/compiler/debug/DebugContext;
3 22 5 indent2 Lorg/graalvm/compiler/debug/Indent;
4 20 6 instructions Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
6 20 7 numInst I
7 20 8 hasDead Z
8 17 9 j I
10 15 10 op Lorg/graalvm/compiler/lir/LIRInstruction;
Exception table:
from to target type
3 20 21 any
2 23 23 any
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;)V
MethodParameters:
Name Flags
block
private void handleBlockBegin(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, java.util.ArrayList<org.graalvm.compiler.lir.LIRInstruction>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/ArrayList;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.hasInterTracePredecessor:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 8
1: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
ifne 2
aload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.equals:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getGlobalLivenessInfo:()Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
astore 3
start local 3 3: aload 2
iconst_0
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 4
start local 4 4: getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
astore 5
start local 5 5: aload 3
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getBlockIn:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[I
astore 6
start local 6 6: aload 0
aload 4
aload 6
aload 5
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.calculateBlockBoundaryValues:(Lorg/graalvm/compiler/lir/LIRInstruction;[ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)[Ljdk/vm/ci/meta/Value;
astore 7
start local 7 7: aload 3
aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.setInLocations:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;[Ljdk/vm/ci/meta/Value;)V
end local 7 end local 6 end local 5 end local 4 end local 3 8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 9 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
0 9 2 instructions Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
3 8 3 li Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
4 8 4 instruction Lorg/graalvm/compiler/lir/LIRInstruction;
5 8 5 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
6 8 6 live [I
7 8 7 values [Ljdk/vm/ci/meta/Value;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;)V
MethodParameters:
Name Flags
block
instructions
private void handleBlockEnd(org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, java.util.ArrayList<org.graalvm.compiler.lir.LIRInstruction>);
descriptor: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;Ljava/util/ArrayList;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.hasInterTraceSuccessor:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Z
ifeq 8
1: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
ifne 2
aload 2
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getLIR:()Lorg/graalvm/compiler/lir/LIR;
aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.equals:(Ljava/lang/Object;)Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getGlobalLivenessInfo:()Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
astore 3
start local 3 3: 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
astore 4
start local 4 4: getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.USE:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
astore 5
start local 5 5: aload 3
aload 1
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.getBlockOut:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)[I
astore 6
start local 6 6: aload 0
aload 4
aload 6
aload 5
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.calculateBlockBoundaryValues:(Lorg/graalvm/compiler/lir/LIRInstruction;[ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)[Ljdk/vm/ci/meta/Value;
astore 7
start local 7 7: aload 3
aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo.setOutLocations:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;[Ljdk/vm/ci/meta/Value;)V
end local 7 end local 6 end local 5 end local 4 end local 3 8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 9 1 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
0 9 2 instructions Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
3 8 3 li Lorg/graalvm/compiler/lir/alloc/trace/GlobalLivenessInfo;
4 8 4 instruction Lorg/graalvm/compiler/lir/LIRInstruction;
5 8 5 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
6 8 6 live [I
7 8 7 values [Ljdk/vm/ci/meta/Value;
Signature: (Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;)V
MethodParameters:
Name Flags
block
instructions
private jdk.vm.ci.meta.Value[] calculateBlockBoundaryValues(org.graalvm.compiler.lir.LIRInstruction, int[], org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;[ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)[Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
arraylength
anewarray jdk.vm.ci.meta.Value
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 7
3: StackMap locals: jdk.vm.ci.meta.Value[] int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 2
iload 5
iaload
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.intervalFor:(I)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 6
start local 6 4: aload 0
aload 1
aload 6
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.valueAtBlockBoundary:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
astore 7
start local 7 5: aload 4
iload 5
aload 7
aastore
end local 7 end local 6 6: iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
aload 2
arraylength
if_icmplt 3
end local 5 8: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 9 1 instruction Lorg/graalvm/compiler/lir/LIRInstruction;
0 9 2 live [I
0 9 3 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
1 9 4 values [Ljdk/vm/ci/meta/Value;
2 8 5 i I
4 6 6 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
5 6 7 val Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
instruction
live
mode
private jdk.vm.ci.meta.Value valueAtBlockBoundary(org.graalvm.compiler.lir.LIRInstruction, org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval, org.graalvm.compiler.lir.LIRInstruction$OperandMode);
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
if_acmpne 2
aload 2
ifnonnull 2
1: getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
areturn
2: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
ifne 3
aload 2
ifnonnull 3
new java.lang.AssertionError
dup
ldc "interval must exist"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.getSplitChildAtOpIdOrNull:(ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
astore 4
start local 4 4: aload 4
ifnonnull 7
5: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
ifne 6
aload 3
getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
if_acmpeq 6
new java.lang.AssertionError
dup
ldc "Not split child at %d for interval %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
6: StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval
StackMap stack:
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
areturn
7: StackMap locals:
StackMap stack:
aload 4
aload 1
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.inMemoryAt:(I)Z
ifeq 9
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifeq 9
8: new org.graalvm.compiler.lir.alloc.trace.ShadowedRegisterValue
dup
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.location:()Ljdk/vm/ci/meta/AllocatableValue;
checkcast jdk.vm.ci.code.RegisterValue
aload 4
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceInterval.spillSlot:()Ljdk/vm/ci/meta/AllocatableValue;
invokespecial org.graalvm.compiler.lir.alloc.trace.ShadowedRegisterValue.<init>:(Ljdk/vm/ci/code/RegisterValue;Ljdk/vm/ci/meta/AllocatableValue;)V
areturn
9: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
aload 3
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.getLocation:(Lorg/graalvm/compiler/lir/LIRInstruction;Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Ljdk/vm/ci/meta/Value;
areturn
end local 4 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/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 10 1 instruction Lorg/graalvm/compiler/lir/LIRInstruction;
0 10 2 interval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
0 10 3 mode Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
4 10 4 splitInterval Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval;
MethodParameters:
Name Flags
instruction
interval
mode
private boolean assignLocations(org.graalvm.compiler.lir.LIRInstruction, java.util.ArrayList<org.graalvm.compiler.lir.LIRInstruction>, );
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljava/util/ArrayList;I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.$assertionsDisabled:Z
ifne 2
aload 1
ifnull 1
aload 2
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
aload 1
if_acmpeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokestatic org.graalvm.compiler.lir.StandardOp$MoveOp.isMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
ifeq 7
3: aload 1
invokestatic org.graalvm.compiler.lir.StandardOp$MoveOp.asMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/StandardOp$MoveOp;
invokeinterface org.graalvm.compiler.lir.StandardOp$MoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
astore 4
start local 4 4: aload 4
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isVariable:(Ljdk/vm/ci/meta/Value;)Z
ifeq 7
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
aload 4
invokestatic org.graalvm.compiler.lir.LIRValueUtil.asVariable:(Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
aload 1
invokevirtual org.graalvm.compiler.lir.LIRInstruction.id:()I
getstatic org.graalvm.compiler.lir.LIRInstruction$OperandMode.DEF:Lorg/graalvm/compiler/lir/LIRInstruction$OperandMode;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.isMaterialized:(Lorg/graalvm/compiler/lir/Variable;ILorg/graalvm/compiler/lir/LIRInstruction$OperandMode;)Z
ifeq 7
5: aload 2
iload 3
aconst_null
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
6: iconst_1
ireturn
end local 4 7: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachInput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
8: aload 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachAlive:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
9: aload 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachTemp:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
10: aload 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.assignProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachOutput:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
11: aload 1
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.debugInfoValueProc:Lorg/graalvm/compiler/lir/InstructionValueProcedure;
invokevirtual org.graalvm.compiler.lir.LIRInstruction.forEachState:(Lorg/graalvm/compiler/lir/InstructionValueProcedure;)V
12: aload 1
invokestatic org.graalvm.compiler.lir.StandardOp$ValueMoveOp.isValueMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
ifeq 19
13: aload 1
invokestatic org.graalvm.compiler.lir.StandardOp$ValueMoveOp.asValueMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
astore 4
start local 4 14: aload 4
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getInput:()Ljdk/vm/ci/meta/AllocatableValue;
aload 4
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual jdk.vm.ci.meta.AllocatableValue.equals:(Ljava/lang/Object;)Z
ifeq 17
15: aload 2
iload 3
aconst_null
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
16: iconst_1
ireturn
17: StackMap locals: org.graalvm.compiler.lir.StandardOp$ValueMoveOp
StackMap stack:
aload 4
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getInput:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifeq 19
aload 4
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue:(Ljdk/vm/ci/meta/Value;)Z
ifeq 19
18: aload 2
iload 3
aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.spillMoveFactory:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool$MoveFactory;
aload 4
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
aload 4
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getInput:()Ljdk/vm/ci/meta/AllocatableValue;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory.createStackMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/lir/LIRInstruction;
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
end local 4 19: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
0 20 1 op Lorg/graalvm/compiler/lir/LIRInstruction;
0 20 2 instructions Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
0 20 3 j I
4 7 4 result Ljdk/vm/ci/meta/AllocatableValue;
14 19 4 move Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
Signature: (Lorg/graalvm/compiler/lir/LIRInstruction;Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;I)Z
MethodParameters:
Name Flags
op
instructions
j
private void assign();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=1
start local 0 0: aconst_null
astore 1
aconst_null
astore 2
1: aload 0
getfield org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
ldc "assign locations"
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.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.allocator:Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase$TraceLinearScan;
invokevirtual org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan.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.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent 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.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner.assignBlock:(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.Indent.close:()V
goto 13
StackMap locals: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
8: astore 1
aload 3
ifnull 9
aload 3
invokeinterface org.graalvm.compiler.debug.Indent.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:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanAssignLocationsPhase$Assigner;
2 9 3 indent Lorg/graalvm/compiler/debug/Indent;
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
}
SourceFile: "TraceLinearScanAssignLocationsPhase.java"
NestHost: org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase
InnerClasses:
public final OperandFlag = org.graalvm.compiler.lir.LIRInstruction$OperandFlag of org.graalvm.compiler.lir.LIRInstruction
public final OperandMode = org.graalvm.compiler.lir.LIRInstruction$OperandMode of org.graalvm.compiler.lir.LIRInstruction
public JumpOp = org.graalvm.compiler.lir.StandardOp$JumpOp of org.graalvm.compiler.lir.StandardOp
public final LabelOp = org.graalvm.compiler.lir.StandardOp$LabelOp of org.graalvm.compiler.lir.StandardOp
public abstract MoveOp = org.graalvm.compiler.lir.StandardOp$MoveOp of org.graalvm.compiler.lir.StandardOp
public abstract ValueMoveOp = org.graalvm.compiler.lir.StandardOp$ValueMoveOp of org.graalvm.compiler.lir.StandardOp
private final Assigner = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase
org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner$1
org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanAssignLocationsPhase$Assigner$2
public final TraceLinearScan = org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase$TraceLinearScan of org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase
public abstract MoveFactory = org.graalvm.compiler.lir.gen.LIRGeneratorTool$MoveFactory of org.graalvm.compiler.lir.gen.LIRGeneratorTool