final class org.graalvm.compiler.lir.RedundantMoveElimination$Optimization
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization
super_class: java.lang.Object
{
jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.core.common.cfg.AbstractBlockBase<?>, org.graalvm.compiler.lir.RedundantMoveElimination$BlockData> blockData;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0000)
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;Lorg/graalvm/compiler/lir/RedundantMoveElimination$BlockData;>;
jdk.vm.ci.code.RegisterArray callerSaveRegs;
descriptor: Ljdk/vm/ci/code/RegisterArray;
flags: (0x0000)
int[] eligibleRegs;
descriptor: [I
flags: (0x0000)
jdk.internal.vm.compiler.collections.EconomicMap<java.lang.Integer, java.lang.Integer> stackIndices;
descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
flags: (0x0000)
Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/Integer;Ljava/lang/Integer;>;
int numRegs;
descriptor: I
flags: (0x0000)
private final org.graalvm.compiler.lir.framemap.FrameMap frameMap;
descriptor: Lorg/graalvm/compiler/lir/framemap/FrameMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final int INIT_VALUE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int COMPLEXITY_LIMIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 30000
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/RedundantMoveElimination;
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.RedundantMoveElimination$Optimization.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.compiler.lir.framemap.FrameMap);
descriptor: (Lorg/graalvm/compiler/lir/framemap/FrameMap;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.blockData:Ljdk/internal/vm/compiler/collections/EconomicMap;
2: aload 0
getstatic jdk.internal.vm.compiler.collections.Equivalence.DEFAULT:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
putfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.stackIndices:Ljdk/internal/vm/compiler/collections/EconomicMap;
3: aload 0
aload 1
putfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.frameMap:Lorg/graalvm/compiler/lir/framemap/FrameMap;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;
0 5 1 frameMap Lorg/graalvm/compiler/lir/framemap/FrameMap;
MethodParameters:
Name Flags
frameMap
private void doOptimize(org.graalvm.compiler.lir.LIR);
descriptor: (Lorg/graalvm/compiler/lir/LIR;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 1: aconst_null
astore 3
aconst_null
astore 4
2: aload 2
ldc "eliminate redundant moves"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 5
start local 5 3: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.frameMap:Lorg/graalvm/compiler/lir/framemap/FrameMap;
invokevirtual org.graalvm.compiler.lir.framemap.FrameMap.getRegisterConfig:()Ljdk/vm/ci/code/RegisterConfig;
astore 6
start local 6 4: aload 0
aload 6
invokeinterface jdk.vm.ci.code.RegisterConfig.getCallerSaveRegisters:()Ljdk/vm/ci/code/RegisterArray;
putfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.callerSaveRegs:Ljdk/vm/ci/code/RegisterArray;
5: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.initBlockData:(Lorg/graalvm/compiler/lir/LIR;)V
6: aload 0
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
newarray 10
putfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.eligibleRegs:[I
7: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.eligibleRegs:[I
iconst_m1
invokestatic java.util.Arrays.fill:([II)V
8: aload 6
invokeinterface jdk.vm.ci.code.RegisterConfig.getAllocatableRegisters:()Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
astore 8
goto 12
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent jdk.vm.ci.code.RegisterConfig top java.util.Iterator
StackMap stack:
9: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.Register
astore 7
start local 7 10: aload 7
getfield jdk.vm.ci.code.Register.number:I
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
if_icmpge 12
11: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.eligibleRegs:[I
aload 7
getfield jdk.vm.ci.code.Register.number:I
aload 7
getfield jdk.vm.ci.code.Register.number:I
iastore
end local 7 12: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
13: aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.solveDataFlow:(Lorg/graalvm/compiler/lir/LIR;)Z
ifne 16
14: aload 5
ifnull 15
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
15: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent jdk.vm.ci.code.RegisterConfig
StackMap stack:
return
16: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.eliminateMoves:(Lorg/graalvm/compiler/lir/LIR;)V
end local 6 17: aload 5
ifnull 23
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 23
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
18: astore 3
aload 5
ifnull 19
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 5 StackMap locals:
StackMap stack:
19: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
20: astore 4
aload 3
ifnonnull 21
aload 4
astore 3
goto 22
StackMap locals:
StackMap stack:
21: aload 3
aload 4
if_acmpeq 22
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
22: aload 3
athrow
23: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;
0 24 1 lir Lorg/graalvm/compiler/lir/LIR;
1 24 2 debug Lorg/graalvm/compiler/debug/DebugContext;
3 19 5 indent Lorg/graalvm/compiler/debug/Indent;
4 17 6 registerConfig Ljdk/vm/ci/code/RegisterConfig;
10 12 7 reg Ljdk/vm/ci/code/Register;
Exception table:
from to target type
3 14 18 any
16 17 18 any
2 15 20 any
16 20 20 any
MethodParameters:
Name Flags
lir
private void initBlockData(org.graalvm.compiler.lir.LIR);
descriptor: (Lorg/graalvm/compiler/lir/LIR;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 1: aload 1
invokevirtual org.graalvm.compiler.lir.LIR.linearScanOrder:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 3
start local 3 2: aload 0
iconst_0
putfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
3: sipush 30000
aload 3
arraylength
idiv
istore 4
start local 4 4: aload 3
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 23
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
5: aload 8
iload 6
aaload
astore 5
start local 5 6: aload 1
aload 5
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 9
start local 9 7: aload 9
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 11
goto 21
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.util.ArrayList top java.util.Iterator
StackMap stack:
8: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 10
start local 10 9: aload 10
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.isEligibleMove:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
ifeq 21
10: aload 10
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 12
start local 12 11: aload 12
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifeq 16
12: aload 12
checkcast jdk.vm.ci.code.RegisterValue
invokevirtual jdk.vm.ci.code.RegisterValue.getRegister:()Ljdk/vm/ci/code/Register;
getfield jdk.vm.ci.code.Register.number:I
istore 13
start local 13 13: iload 13
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
if_icmplt 21
14: aload 0
iload 13
iconst_1
iadd
putfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
end local 13 15: goto 21
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.util.ArrayList org.graalvm.compiler.lir.LIRInstruction java.util.Iterator jdk.vm.ci.meta.Value
StackMap stack:
16: aload 12
invokestatic jdk.vm.ci.code.ValueUtil.isStackSlot:(Ljdk/vm/ci/meta/Value;)Z
ifeq 21
17: aload 12
checkcast jdk.vm.ci.code.StackSlot
astore 13
start local 13 18: aload 0
aload 13
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.getOffset:(Ljdk/vm/ci/code/StackSlot;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 14
start local 14 19: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.stackIndices:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 14
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
ifne 21
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.stackIndices:Ljdk/internal/vm/compiler/collections/EconomicMap;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.size:()I
iload 4
if_icmpge 21
20: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.stackIndices:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 14
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.stackIndices:Ljdk/internal/vm/compiler/collections/EconomicMap;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.size:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 14 end local 13 end local 12 end local 10 21: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.util.ArrayList top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
end local 9 end local 5 22: iinc 6 1
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
23: iload 6
iload 7
if_icmplt 5
24: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.stackIndices:Ljdk/internal/vm/compiler/collections/EconomicMap;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.size:()I
iadd
istore 5
start local 5 25: aload 2
ldc "num locations = %d (regs = %d, stack = %d)"
iload 5
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.stackIndices:Ljdk/internal/vm/compiler/collections/EconomicMap;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.size:()I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;III)V
26: aload 3
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 31
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
27: aload 9
iload 7
aaload
astore 6
start local 6 28: new org.graalvm.compiler.lir.RedundantMoveElimination$BlockData
dup
iload 5
invokespecial org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.<init>:(I)V
astore 10
start local 10 29: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.blockData:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 6
aload 10
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 end local 6 30: iinc 7 1
StackMap locals:
StackMap stack:
31: iload 7
iload 8
if_icmplt 27
32: return
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 33 0 this Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;
0 33 1 lir Lorg/graalvm/compiler/lir/LIR;
1 33 2 debug Lorg/graalvm/compiler/debug/DebugContext;
2 33 3 blocks [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
4 33 4 maxStackLocations I
6 22 5 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
7 22 9 instructions Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
9 21 10 op Lorg/graalvm/compiler/lir/LIRInstruction;
11 21 12 dest Ljdk/vm/ci/meta/Value;
13 15 13 regNum I
18 21 13 stackSlot Ljdk/vm/ci/code/StackSlot;
19 21 14 offset Ljava/lang/Integer;
25 33 5 numLocations I
28 30 6 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
29 30 10 data Lorg/graalvm/compiler/lir/RedundantMoveElimination$BlockData;
MethodParameters:
Name Flags
lir
private int getOffset(jdk.vm.ci.code.StackSlot);
descriptor: (Ljdk/vm/ci/code/StackSlot;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.frameMap:Lorg/graalvm/compiler/lir/framemap/FrameMap;
invokevirtual org.graalvm.compiler.lir.framemap.FrameMap.totalFrameSize:()I
invokevirtual jdk.vm.ci.code.StackSlot.getOffset:(I)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;
0 1 1 stackSlot Ljdk/vm/ci/code/StackSlot;
MethodParameters:
Name Flags
stackSlot
private boolean solveDataFlow(org.graalvm.compiler.lir.LIR);
descriptor: (Lorg/graalvm/compiler/lir/LIR;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=28, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 1: aconst_null
astore 3
aconst_null
astore 4
2: aload 2
ldc "solve data flow"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 5
start local 5 3: aload 1
invokevirtual org.graalvm.compiler.lir.LIR.linearScanOrder:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 6
start local 6 4: iconst_0
istore 7
start local 7 5: iconst_1
istore 8
start local 8 6: iconst_1
istore 9
start local 9 7: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int
StackMap stack:
iconst_0
istore 10
start local 10 8: aconst_null
astore 11
aconst_null
astore 12
9: aload 2
ldc "new iteration"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 13
start local 13 10: aload 6
dup
astore 17
arraylength
istore 16
iconst_0
istore 15
goto 49
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
11: aload 17
iload 15
aaload
astore 14
start local 14 12: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.blockData:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 14
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.RedundantMoveElimination$BlockData
astore 18
start local 18 13: iload 9
ifeq 15
14: aload 18
iload 8
putfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryValueNum:I
15: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.lir.RedundantMoveElimination$BlockData
StackMap stack:
aload 18
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryValueNum:I
istore 19
start local 19 16: getstatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.$assertionsDisabled:Z
ifne 17
iload 19
ifgt 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals: int
StackMap stack:
iconst_0
istore 20
start local 20 18: aload 14
aload 6
iconst_0
aaload
if_acmpeq 19
aload 14
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.isExceptionEntry:()Z
ifeq 22
19: StackMap locals: int
StackMap stack:
aload 2
ldc "kill all values at entry of block %d"
aload 14
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getId:()I
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;I)V
20: aload 18
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryState:[I
iload 19
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.clearValues:([II)V
21: goto 28
22: StackMap locals:
StackMap stack:
aload 14
invokevirtual org.graalvm.compiler.core.common.cfg.AbstractBlockBase.getPredecessors:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
dup
astore 24
arraylength
istore 23
iconst_0
istore 22
goto 27
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.lir.RedundantMoveElimination$BlockData int int top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
23: aload 24
iload 22
aaload
astore 21
start local 21 24: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.blockData:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 21
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.RedundantMoveElimination$BlockData
astore 25
start local 25 25: iload 20
aload 18
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryState:[I
aload 25
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.exitState:[I
iload 19
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.mergeState:([I[II)Z
ior
istore 20
end local 25 end local 21 26: iinc 22 1
StackMap locals:
StackMap stack:
27: iload 22
iload 23
if_icmplt 23
28: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.lir.RedundantMoveElimination$BlockData int int
StackMap stack:
iload 19
aload 18
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryState:[I
arraylength
iadd
istore 19
29: iload 20
ifne 30
iload 9
ifeq 46
30: StackMap locals:
StackMap stack:
aconst_null
astore 21
aconst_null
astore 22
31: aload 2
ldc "update block %d"
aload 14
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 23
start local 23 32: aload 18
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.exitState:[I
astore 24
start local 24 33: aload 24
aload 18
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryState:[I
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.copyState:([I[I)V
34: aload 1
aload 14
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 25
start local 25 35: aload 25
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 27
goto 38
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.lir.RedundantMoveElimination$BlockData int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int[] java.util.ArrayList top java.util.Iterator
StackMap stack:
36: aload 27
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 26
start local 26 37: aload 0
aload 2
aload 24
aload 26
iload 19
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.updateState:(Lorg/graalvm/compiler/debug/DebugContext;[ILorg/graalvm/compiler/lir/LIRInstruction;I)I
istore 19
end local 26 38: StackMap locals:
StackMap stack:
aload 27
invokeinterface java.util.Iterator.hasNext:()Z
ifne 36
39: iconst_1
istore 10
end local 25 end local 24 40: aload 23
ifnull 46
aload 23
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 46
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.lir.RedundantMoveElimination$BlockData int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
41: astore 21
aload 23
ifnull 42
aload 23
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 23 StackMap locals:
StackMap stack:
42: aload 21
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 22
aload 21
ifnonnull 44
aload 22
astore 21
goto 45
StackMap locals:
StackMap stack:
44: aload 21
aload 22
if_acmpeq 45
aload 21
aload 22
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
45: aload 21
athrow
46: StackMap locals:
StackMap stack:
iload 9
ifeq 48
47: iload 19
istore 8
end local 20 end local 19 end local 18 end local 14 48: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
49: iload 15
iload 16
if_icmplt 11
50: iconst_0
istore 9
51: aload 13
ifnull 57
aload 13
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 57
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] int int int int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
52: astore 11
aload 13
ifnull 53
aload 13
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 13 StackMap locals:
StackMap stack:
53: aload 11
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
54: astore 12
aload 11
ifnonnull 55
aload 12
astore 11
goto 56
StackMap locals:
StackMap stack:
55: aload 11
aload 12
if_acmpeq 56
aload 11
aload 12
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
56: aload 11
athrow
57: StackMap locals:
StackMap stack:
iinc 7 1
58: iload 7
iconst_5
if_icmple 61
59: aload 5
ifnull 60
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
60: StackMap locals:
StackMap stack:
iconst_0
ireturn
61: StackMap locals:
StackMap stack:
iload 10
ifne 7
end local 10 end local 9 end local 8 end local 7 end local 6 62: aload 5
ifnull 68
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 68
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
63: astore 3
aload 5
ifnull 64
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 5 StackMap locals:
StackMap stack:
64: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
65: astore 4
aload 3
ifnonnull 66
aload 4
astore 3
goto 67
StackMap locals:
StackMap stack:
66: aload 3
aload 4
if_acmpeq 67
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
67: aload 3
athrow
68: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 this Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;
0 69 1 lir Lorg/graalvm/compiler/lir/LIR;
1 69 2 debug Lorg/graalvm/compiler/debug/DebugContext;
3 64 5 indent Lorg/graalvm/compiler/debug/Indent;
4 62 6 blocks [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
5 62 7 numIter I
6 62 8 currentValueNum I
7 62 9 firstRound Z
8 62 10 changed Z
10 53 13 indent2 Lorg/graalvm/compiler/debug/Indent;
12 48 14 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
13 48 18 data Lorg/graalvm/compiler/lir/RedundantMoveElimination$BlockData;
16 48 19 valueNum I
18 48 20 newState Z
24 26 21 predecessor Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
25 26 25 predData Lorg/graalvm/compiler/lir/RedundantMoveElimination$BlockData;
32 42 23 indent3 Lorg/graalvm/compiler/debug/Indent;
33 40 24 iterState [I
35 40 25 instructions Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
37 38 26 op Lorg/graalvm/compiler/lir/LIRInstruction;
Exception table:
from to target type
32 40 41 any
31 43 43 any
10 51 52 any
9 54 54 any
3 59 63 any
61 62 63 any
2 60 65 any
61 65 65 any
MethodParameters:
Name Flags
lir
private void eliminateMoves(org.graalvm.compiler.lir.LIR);
descriptor: (Lorg/graalvm/compiler/lir/LIR;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=25, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.lir.LIR.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
astore 2
start local 2 1: aconst_null
astore 3
aconst_null
astore 4
2: aload 2
ldc "eliminate moves"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 5
start local 5 3: aload 1
invokevirtual org.graalvm.compiler.lir.LIR.linearScanOrder:()[Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
astore 6
start local 6 4: aload 6
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 39
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
5: aload 10
iload 8
aaload
astore 7
start local 7 6: aconst_null
astore 11
aconst_null
astore 12
7: aload 2
ldc "eliminate moves in block %d"
aload 7
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 13
start local 13 8: aload 1
aload 7
invokevirtual org.graalvm.compiler.lir.LIR.getLIRforBlock:(Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;)Ljava/util/ArrayList;
astore 14
start local 14 9: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.blockData:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 7
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.RedundantMoveElimination$BlockData
astore 15
start local 15 10: iconst_0
istore 16
start local 16 11: aload 15
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryState:[I
astore 17
start local 17 12: aload 15
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryValueNum:I
aload 15
getfield org.graalvm.compiler.lir.RedundantMoveElimination$BlockData.entryState:[I
arraylength
iadd
istore 18
start local 18 13: aload 14
invokevirtual java.util.ArrayList.size:()I
istore 19
start local 19 14: iconst_0
istore 20
start local 20 15: goto 29
16: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.util.ArrayList org.graalvm.compiler.lir.RedundantMoveElimination$BlockData int int[] int int int
StackMap stack:
aload 14
iload 20
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.lir.LIRInstruction
astore 21
start local 21 17: aload 21
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.isEligibleMove:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
ifeq 27
18: aload 21
invokestatic org.graalvm.compiler.lir.StandardOp$ValueMoveOp.asValueMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
astore 22
start local 22 19: aload 0
aload 22
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getInput:()Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.getStateIdx:(Ljdk/vm/ci/meta/Value;)I
istore 23
start local 23 20: aload 0
aload 22
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.getStateIdx:(Ljdk/vm/ci/meta/Value;)I
istore 24
start local 24 21: iload 23
iflt 27
iload 24
iflt 27
aload 17
iload 23
iaload
aload 17
iload 24
iaload
if_icmpne 27
22: getstatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.$assertionsDisabled:Z
ifne 23
aload 17
iload 23
iaload
ifne 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent java.util.ArrayList org.graalvm.compiler.lir.RedundantMoveElimination$BlockData int int[] int int int org.graalvm.compiler.lir.LIRInstruction org.graalvm.compiler.lir.StandardOp$ValueMoveOp int int
StackMap stack:
aload 2
ldc "delete move %s"
aload 21
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
24: aload 14
iload 20
aconst_null
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
25: iconst_1
istore 16
26: getstatic org.graalvm.compiler.lir.RedundantMoveElimination.deletedMoves:Lorg/graalvm/compiler/debug/CounterKey;
aload 2
invokeinterface org.graalvm.compiler.debug.CounterKey.increment:(Lorg/graalvm/compiler/debug/DebugContext;)V
end local 24 end local 23 end local 22 27: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 17
aload 21
iload 18
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.updateState:(Lorg/graalvm/compiler/debug/DebugContext;[ILorg/graalvm/compiler/lir/LIRInstruction;I)I
istore 18
end local 21 28: iinc 20 1
StackMap locals:
StackMap stack:
29: iload 20
iload 19
if_icmplt 16
end local 20 30: iload 16
ifeq 32
31: aload 14
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 19 end local 18 end local 17 end local 16 end local 15 end local 14 32: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] org.graalvm.compiler.core.common.cfg.AbstractBlockBase int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack:
aload 13
ifnull 38
aload 13
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 38
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 11
aload 13
ifnull 34
aload 13
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 13 StackMap locals:
StackMap stack:
34: aload 11
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
35: astore 12
aload 11
ifnonnull 36
aload 12
astore 11
goto 37
StackMap locals:
StackMap stack:
36: aload 11
aload 12
if_acmpeq 37
aload 11
aload 12
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
37: aload 11
athrow
end local 7 38: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.core.common.cfg.AbstractBlockBase[] top int int org.graalvm.compiler.core.common.cfg.AbstractBlockBase[]
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
39: iload 8
iload 9
if_icmplt 5
end local 6 40: aload 5
ifnull 46
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
goto 46
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.lir.LIR org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
41: astore 3
aload 5
ifnull 42
aload 5
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 5 StackMap locals:
StackMap stack:
42: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
43: astore 4
aload 3
ifnonnull 44
aload 4
astore 3
goto 45
StackMap locals:
StackMap stack:
44: aload 3
aload 4
if_acmpeq 45
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
45: aload 3
athrow
46: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;
0 47 1 lir Lorg/graalvm/compiler/lir/LIR;
1 47 2 debug Lorg/graalvm/compiler/debug/DebugContext;
3 42 5 indent Lorg/graalvm/compiler/debug/Indent;
4 40 6 blocks [Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
6 38 7 block Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase<*>;
8 34 13 indent2 Lorg/graalvm/compiler/debug/Indent;
9 32 14 instructions Ljava/util/ArrayList<Lorg/graalvm/compiler/lir/LIRInstruction;>;
10 32 15 data Lorg/graalvm/compiler/lir/RedundantMoveElimination$BlockData;
11 32 16 hasDead Z
12 32 17 iterState [I
13 32 18 valueNum I
14 32 19 numInsts I
15 30 20 idx I
17 28 21 op Lorg/graalvm/compiler/lir/LIRInstruction;
19 27 22 moveOp Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
20 27 23 sourceIdx I
21 27 24 destIdx I
Exception table:
from to target type
8 32 33 any
7 35 35 any
3 40 41 any
2 43 43 any
MethodParameters:
Name Flags
lir
private int updateState(org.graalvm.compiler.debug.DebugContext, int[], org.graalvm.compiler.lir.LIRInstruction, int);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;[ILorg/graalvm/compiler/lir/LIRInstruction;I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
aconst_null
astore 6
1: aload 1
ldc "update state for op %s, initial value num = %d"
aload 3
iload 4
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;Ljava/lang/Object;I)Lorg/graalvm/compiler/debug/Indent;
astore 7
start local 7 2: aload 3
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.isEligibleMove:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
ifeq 13
3: aload 3
invokestatic org.graalvm.compiler.lir.StandardOp$ValueMoveOp.asValueMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
astore 8
start local 8 4: aload 0
aload 8
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getInput:()Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.getStateIdx:(Ljdk/vm/ci/meta/Value;)I
istore 9
start local 9 5: aload 0
aload 8
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.getStateIdx:(Ljdk/vm/ci/meta/Value;)I
istore 10
start local 10 6: iload 9
iflt 13
iload 10
iflt 13
7: getstatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.$assertionsDisabled:Z
ifne 8
aload 2
iload 9
iaload
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.isObjectValue:(I)Z
ifne 8
aload 8
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getInput:()Ljdk/vm/ci/meta/AllocatableValue;
invokestatic org.graalvm.compiler.core.common.LIRKind.isValue:(Ljdk/vm/ci/meta/Value;)Z
ifne 8
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "move op moves object but input is not defined as object "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
8: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.debug.DebugContext int[] org.graalvm.compiler.lir.LIRInstruction int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent org.graalvm.compiler.lir.StandardOp$ValueMoveOp int int
StackMap stack:
aload 2
iload 10
aload 2
iload 9
iaload
iastore
9: aload 1
ldc "move value %d from %d to %d"
aload 2
iload 9
iaload
iload 9
iload 10
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;III)V
10: iload 4
11: aload 7
ifnull 12
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
12: StackMap locals:
StackMap stack: int
ireturn
end local 10 end local 9 end local 8 13: StackMap locals:
StackMap stack:
iload 4
istore 8
start local 8 14: aload 3
invokevirtual org.graalvm.compiler.lir.LIRInstruction.destroysCallerSavedRegisters:()Z
ifeq 21
15: aload 1
ldc "kill all caller save regs"
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
16: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.callerSaveRegs:Ljdk/vm/ci/code/RegisterArray;
invokevirtual jdk.vm.ci.code.RegisterArray.iterator:()Ljava/util/Iterator;
astore 10
goto 20
StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.debug.DebugContext int[] org.graalvm.compiler.lir.LIRInstruction int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int top java.util.Iterator
StackMap stack:
17: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.code.Register
astore 9
start local 9 18: aload 9
getfield jdk.vm.ci.code.Register.number:I
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
if_icmpge 20
19: aload 2
aload 9
getfield jdk.vm.ci.code.Register.number:I
iload 8
iinc 8 1
iconst_1
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.encodeValueNum:(IZ)I
iastore
end local 9 20: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
21: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.debug.DebugContext int[] org.graalvm.compiler.lir.LIRInstruction int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent int
StackMap stack:
new org.graalvm.compiler.lir.RedundantMoveElimination$Optimization$1OutputValueConsumer
dup
aload 0
iload 8
aload 2
aload 1
invokespecial org.graalvm.compiler.lir.RedundantMoveElimination$Optimization$1OutputValueConsumer.<init>:(Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;I[ILorg/graalvm/compiler/debug/DebugContext;)V
astore 9
start local 9 22: aload 3
aload 9
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachTemp:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
23: aload 3
aload 9
invokevirtual org.graalvm.compiler.lir.LIRInstruction.visitEachOutput:(Lorg/graalvm/compiler/lir/ValueConsumer;)V
24: aload 9
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization$1OutputValueConsumer.opValueNum:I
istore 8
25: aload 3
invokevirtual org.graalvm.compiler.lir.LIRInstruction.hasState:()Z
ifeq 29
26: aload 1
ldc "kill all object values"
invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;)V
27: aload 2
iload 8
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.clearValuesOfKindObject:([II)V
28: iload 8
aload 2
arraylength
iadd
istore 8
29: StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization$1OutputValueConsumer
StackMap stack:
iload 8
30: aload 7
ifnull 31
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
31: StackMap locals:
StackMap stack: int
ireturn
end local 9 end local 8 StackMap locals: org.graalvm.compiler.lir.RedundantMoveElimination$Optimization org.graalvm.compiler.debug.DebugContext int[] org.graalvm.compiler.lir.LIRInstruction int java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
32: astore 5
33: aload 7
ifnull 34
aload 7
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 7 StackMap locals:
StackMap stack:
34: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
35: astore 6
aload 5
ifnonnull 36
aload 6
astore 5
goto 37
StackMap locals:
StackMap stack:
36: aload 5
aload 6
if_acmpeq 37
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
37: aload 5
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;
0 38 1 debug Lorg/graalvm/compiler/debug/DebugContext;
0 38 2 state [I
0 38 3 op Lorg/graalvm/compiler/lir/LIRInstruction;
0 38 4 initValueNum I
2 34 7 indent Lorg/graalvm/compiler/debug/Indent;
4 13 8 moveOp Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
5 13 9 sourceIdx I
6 13 10 destIdx I
14 32 8 valueNum I
18 20 9 reg Ljdk/vm/ci/code/Register;
22 32 9 outputValueConsumer Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization$1OutputValueConsumer;
Exception table:
from to target type
2 11 32 any
13 30 32 any
1 12 35 any
13 31 35 any
32 35 35 any
MethodParameters:
Name Flags
debug
state final
op
initValueNum
private static boolean mergeState(int[], int[], int);
descriptor: ([I[II)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.$assertionsDisabled:Z
ifne 1
aload 0
arraylength
aload 1
arraylength
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 17
4: StackMap locals: int int
StackMap stack:
iload 2
iload 4
iadd
istore 5
start local 5 5: aload 0
iload 4
iaload
istore 6
start local 6 6: aload 1
iload 4
iaload
istore 7
start local 7 7: iload 6
iload 7
if_icmpeq 16
iload 7
ifeq 16
iload 6
iload 5
iload 6
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.isObjectValue:(I)Z
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.encodeValueNum:(IZ)I
if_icmpeq 16
8: iload 6
ifeq 13
9: iload 5
iload 6
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.isObjectValue:(I)Z
ifne 10
iload 7
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.isObjectValue:(I)Z
ifne 10
iconst_0
goto 11
StackMap locals: int[] int[] int int int int int int
StackMap stack: int
10: iconst_1
StackMap locals: int[] int[] int int int int int int
StackMap stack: int int
11: invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.encodeValueNum:(IZ)I
istore 6
12: goto 14
13: StackMap locals:
StackMap stack:
iload 7
istore 6
14: StackMap locals:
StackMap stack:
aload 0
iload 4
iload 6
iastore
15: iconst_1
istore 3
end local 7 end local 6 end local 5 16: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
aload 1
arraylength
if_icmplt 4
end local 4 18: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 dest [I
0 19 1 source [I
0 19 2 defNum I
2 19 3 changed Z
3 18 4 idx I
5 16 5 phiNum I
6 16 6 dst I
7 16 7 src I
MethodParameters:
Name Flags
dest
source
defNum
private static void copyState(int[], int[]);
descriptor: ([I[I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.$assertionsDisabled:Z
ifne 1
aload 0
arraylength
aload 1
arraylength
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 0
iload 2
aload 1
iload 2
iaload
iastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 1
arraylength
if_icmplt 3
end local 2 6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 dest [I
0 7 1 source [I
2 6 2 idx I
MethodParameters:
Name Flags
dest
source
private static void clearValues(int[], int);
descriptor: ([II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 5
2: StackMap locals: int
StackMap stack:
iload 1
iload 2
iadd
istore 3
start local 3 3: aload 0
iload 2
iload 3
iconst_1
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.encodeValueNum:(IZ)I
iastore
end local 3 4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
arraylength
if_icmplt 2
end local 2 6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 state [I
0 7 1 defNum I
1 6 2 idx I
3 4 3 phiNum I
MethodParameters:
Name Flags
state
defNum
private static void clearValuesOfKindObject(int[], int);
descriptor: ([II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 6
2: StackMap locals: int
StackMap stack:
iload 1
iload 2
iadd
istore 3
start local 3 3: aload 0
iload 2
iaload
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.isObjectValue:(I)Z
ifeq 5
4: aload 0
iload 2
iload 3
iconst_1
invokestatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.encodeValueNum:(IZ)I
iastore
end local 3 5: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 0
arraylength
if_icmplt 2
end local 2 7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 state [I
0 8 1 defNum I
1 7 2 idx I
3 5 3 phiNum I
MethodParameters:
Name Flags
state
defNum
private int getStateIdx(jdk.vm.ci.meta.Value);
descriptor: (Ljdk/vm/ci/meta/Value;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic jdk.vm.ci.code.ValueUtil.isRegister:(Ljdk/vm/ci/meta/Value;)Z
ifeq 5
1: aload 1
checkcast jdk.vm.ci.code.RegisterValue
invokevirtual jdk.vm.ci.code.RegisterValue.getRegister:()Ljdk/vm/ci/code/Register;
getfield jdk.vm.ci.code.Register.number:I
istore 2
start local 2 2: iload 2
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
if_icmpge 4
3: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.eligibleRegs:[I
iload 2
iaload
ireturn
4: StackMap locals: int
StackMap stack:
iconst_m1
ireturn
end local 2 5: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.vm.ci.code.ValueUtil.isStackSlot:(Ljdk/vm/ci/meta/Value;)Z
ifeq 10
6: aload 1
checkcast jdk.vm.ci.code.StackSlot
astore 2
start local 2 7: aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.stackIndices:Ljdk/internal/vm/compiler/collections/EconomicMap;
aload 0
aload 2
invokevirtual org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.getOffset:(Ljdk/vm/ci/code/StackSlot;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 3
start local 3 8: aload 3
ifnull 10
9: aload 3
invokevirtual java.lang.Integer.intValue:()I
aload 0
getfield org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.numRegs:I
iadd
ireturn
end local 3 end local 2 10: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/lir/RedundantMoveElimination$Optimization;
0 11 1 location Ljdk/vm/ci/meta/Value;
2 5 2 regNum I
7 10 2 slot Ljdk/vm/ci/code/StackSlot;
8 10 3 index Ljava/lang/Integer;
MethodParameters:
Name Flags
location
private static int encodeValueNum(int, boolean);
descriptor: (IZ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.graalvm.compiler.lir.RedundantMoveElimination$Optimization.$assertionsDisabled:Z
ifne 1
iload 0
ifgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iload 1
ifeq 3
2: iload 0
ineg
ireturn
3: StackMap locals:
StackMap stack:
iload 0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 valueNum I
0 4 1 isObjectKind Z
MethodParameters:
Name Flags
valueNum
isObjectKind
private static boolean isObjectValue(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
ifge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 encodedValueNum I
MethodParameters:
Name Flags
encodedValueNum
private static boolean isEligibleMove(org.graalvm.compiler.lir.LIRInstruction);
descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
invokestatic org.graalvm.compiler.lir.StandardOp$ValueMoveOp.isValueMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Z
ifeq 5
1: aload 0
invokestatic org.graalvm.compiler.lir.StandardOp$ValueMoveOp.asValueMoveOp:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
astore 1
start local 1 2: aload 1
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getInput:()Ljdk/vm/ci/meta/AllocatableValue;
astore 2
start local 2 3: aload 1
invokeinterface org.graalvm.compiler.lir.StandardOp$ValueMoveOp.getResult:()Ljdk/vm/ci/meta/AllocatableValue;
astore 3
start local 3 4: aload 2
invokevirtual jdk.vm.ci.meta.Value.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
aload 3
invokevirtual jdk.vm.ci.meta.Value.getValueKind:()Ljdk/vm/ci/meta/ValueKind;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ireturn
end local 3 end local 2 end local 1 5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 op Lorg/graalvm/compiler/lir/LIRInstruction;
2 5 1 moveOp Lorg/graalvm/compiler/lir/StandardOp$ValueMoveOp;
3 5 2 source Ljdk/vm/ci/meta/Value;
4 5 3 dest Ljdk/vm/ci/meta/Value;
MethodParameters:
Name Flags
op
}
SourceFile: "RedundantMoveElimination.java"
NestHost: org.graalvm.compiler.lir.RedundantMoveElimination
InnerClasses:
private final BlockData = org.graalvm.compiler.lir.RedundantMoveElimination$BlockData of org.graalvm.compiler.lir.RedundantMoveElimination
private final Optimization = org.graalvm.compiler.lir.RedundantMoveElimination$Optimization of org.graalvm.compiler.lir.RedundantMoveElimination
OutputValueConsumer = org.graalvm.compiler.lir.RedundantMoveElimination$Optimization$1OutputValueConsumer
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