src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/ssa/SSALinearScanLifetimeAnalysisPhase.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/ssa/SSALinearScanLifetimeAnalysisPhase.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/ssa/SSALinearScanLifetimeAnalysisPhase.java
Print this page
*** 22,32 ****
*/
package org.graalvm.compiler.lir.alloc.lsra.ssa;
import java.util.EnumSet;
! import org.graalvm.compiler.debug.Debug;
import org.graalvm.compiler.lir.LIRInstruction;
import org.graalvm.compiler.lir.LIRInstruction.OperandFlag;
import org.graalvm.compiler.lir.LIRInstruction.OperandMode;
import org.graalvm.compiler.lir.StandardOp.LabelOp;
import org.graalvm.compiler.lir.ValueConsumer;
--- 22,32 ----
*/
package org.graalvm.compiler.lir.alloc.lsra.ssa;
import java.util.EnumSet;
! import org.graalvm.compiler.debug.DebugContext;
import org.graalvm.compiler.lir.LIRInstruction;
import org.graalvm.compiler.lir.LIRInstruction.OperandFlag;
import org.graalvm.compiler.lir.LIRInstruction.OperandMode;
import org.graalvm.compiler.lir.StandardOp.LabelOp;
import org.graalvm.compiler.lir.ValueConsumer;
*** 56,82 ****
SSAUtil.forEachPhiRegisterHint(allocator.getLIR(), allocator.blockForId(label.id()), label, targetValue, mode, (ValueConsumer) (registerHint, valueMode, valueFlags) -> {
if (LinearScan.isVariableOrRegister(registerHint)) {
Interval from = allocator.getOrCreateInterval((AllocatableValue) registerHint);
! setHint(op, to, from);
! setHint(op, from, to);
}
});
}
}
! public static void setHint(final LIRInstruction op, Interval target, Interval source) {
Interval currentHint = target.locationHint(false);
if (currentHint == null || currentHint.from() > target.from()) {
/*
* Update hint if there was none or if the hint interval starts after the hinted
* interval.
*/
target.setLocationHint(source);
! if (Debug.isLogEnabled()) {
! Debug.log("operation at opId %d: added hint from interval %d to %d", op.id(), source.operandNumber, target.operandNumber);
}
}
}
@Override
--- 56,82 ----
SSAUtil.forEachPhiRegisterHint(allocator.getLIR(), allocator.blockForId(label.id()), label, targetValue, mode, (ValueConsumer) (registerHint, valueMode, valueFlags) -> {
if (LinearScan.isVariableOrRegister(registerHint)) {
Interval from = allocator.getOrCreateInterval((AllocatableValue) registerHint);
! setHint(debug, op, to, from);
! setHint(debug, op, from, to);
}
});
}
}
! public static void setHint(DebugContext debug, final LIRInstruction op, Interval target, Interval source) {
Interval currentHint = target.locationHint(false);
if (currentHint == null || currentHint.from() > target.from()) {
/*
* Update hint if there was none or if the hint interval starts after the hinted
* interval.
*/
target.setLocationHint(source);
! if (debug.isLogEnabled()) {
! debug.log("operation at opId %d: added hint from interval %d to %d", op.id(), source.operandNumber, target.operandNumber);
}
}
}
@Override
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/ssa/SSALinearScanLifetimeAnalysisPhase.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File