src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanEliminateSpillMovePhase.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanEliminateSpillMovePhase.java	Mon Mar 20 17:39:58 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanEliminateSpillMovePhase.java	Mon Mar 20 17:39:58 2017

*** 20,35 **** --- 20,35 ---- * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.lir.alloc.trace.lsra; + import static jdk.vm.ci.code.ValueUtil.isRegister; import static org.graalvm.compiler.core.common.GraalOptions.DetailedAsserts; import static org.graalvm.compiler.lir.LIRValueUtil.isStackSlotValue; import static org.graalvm.compiler.lir.LIRValueUtil.isVariable; import static jdk.vm.ci.code.ValueUtil.isRegister; ! import java.util.ArrayList; import org.graalvm.compiler.core.common.alloc.Trace; import org.graalvm.compiler.core.common.alloc.TraceBuilderResult; import org.graalvm.compiler.core.common.cfg.AbstractBlockBase; import org.graalvm.compiler.debug.Debug;
*** 79,89 **** --- 79,89 ---- /* * collect all intervals that must be stored after their definition. The list is sorted * by Interval.spillDefinitionPos. */ TraceInterval interval = allocator.createUnhandledListBySpillPos(spilledIntervals); ! if (DetailedAsserts.getValue(allocator.getOptions())) { checkIntervals(interval); } if (Debug.isLogEnabled()) { try (Indent indent2 = Debug.logAndIndent("Sorted intervals")) { for (TraceInterval i = interval; i != null; i = i.next) {
*** 93,103 **** --- 93,103 ---- } LIRInsertionBuffer insertionBuffer = new LIRInsertionBuffer(); for (AbstractBlockBase<?> block : allocator.sortedBlocks()) { try (Indent indent1 = Debug.logAndIndent("Handle %s", block)) { ! ArrayList<LIRInstruction> instructions = allocator.getLIR().getLIRforBlock(block); int numInst = instructions.size(); int lastOpId = -1; // iterate all instructions of the block. for (int j = 0; j < numInst; j++) {
*** 226,236 **** --- 226,236 ---- private static void checkIntervals(TraceInterval interval) { TraceInterval prev = null; TraceInterval temp = interval; while (temp != TraceInterval.EndMarker) { ! assert temp.spillDefinitionPos() >= 0 : "invalid spill definition pos " + temp; if (prev != null) { // assert temp.from() >= prev.from() : "intervals not sorted"; assert temp.spillDefinitionPos() >= prev.spillDefinitionPos() : "when intervals are sorted by from : then they must also be sorted by spillDefinitionPos"; }

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanEliminateSpillMovePhase.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File