< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/RedundantMoveElimination.java
Print this page
*** 28,37 ****
--- 28,38 ----
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.EnumSet;
+ import jdk.vm.ci.code.RegisterConfig;
import org.graalvm.compiler.core.common.LIRKind;
import org.graalvm.compiler.core.common.cfg.AbstractBlockBase;
import org.graalvm.compiler.debug.CounterKey;
import org.graalvm.compiler.debug.DebugContext;
import org.graalvm.compiler.debug.Indent;
*** 136,155 ****
*/
@SuppressWarnings("try")
private void doOptimize(LIR lir) {
DebugContext debug = lir.getDebug();
try (Indent indent = debug.logAndIndent("eliminate redundant moves")) {
!
! callerSaveRegs = frameMap.getRegisterConfig().getCallerSaveRegisters();
initBlockData(lir);
// Compute a table of the registers which are eligible for move optimization.
// Unallocatable registers should never be optimized.
eligibleRegs = new int[numRegs];
Arrays.fill(eligibleRegs, -1);
! for (Register reg : frameMap.getRegisterConfig().getAllocatableRegisters()) {
if (reg.number < numRegs) {
eligibleRegs[reg.number] = reg.number;
}
}
--- 137,156 ----
*/
@SuppressWarnings("try")
private void doOptimize(LIR lir) {
DebugContext debug = lir.getDebug();
try (Indent indent = debug.logAndIndent("eliminate redundant moves")) {
! RegisterConfig registerConfig = frameMap.getRegisterConfig();
! callerSaveRegs = registerConfig.getCallerSaveRegisters();
initBlockData(lir);
// Compute a table of the registers which are eligible for move optimization.
// Unallocatable registers should never be optimized.
eligibleRegs = new int[numRegs];
Arrays.fill(eligibleRegs, -1);
! for (Register reg : registerConfig.getAllocatableRegisters()) {
if (reg.number < numRegs) {
eligibleRegs[reg.number] = reg.number;
}
}
< prev index next >