src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/alloc/TraceBuilderResult.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.core.common/src/org/graalvm/compiler/core/common/alloc/TraceBuilderResult.java

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/alloc/TraceBuilderResult.java

Print this page

        

*** 25,35 **** import java.util.ArrayList; import java.util.Arrays; import java.util.BitSet; import org.graalvm.compiler.core.common.cfg.AbstractBlockBase; ! import org.graalvm.compiler.debug.Debug; import org.graalvm.compiler.debug.Indent; public final class TraceBuilderResult { public abstract static class TrivialTracePredicate { --- 25,35 ---- import java.util.ArrayList; import java.util.Arrays; import java.util.BitSet; import org.graalvm.compiler.core.common.cfg.AbstractBlockBase; ! import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.debug.Indent; public final class TraceBuilderResult { public abstract static class TrivialTracePredicate {
*** 37,49 **** } private final ArrayList<Trace> traces; private final Trace[] blockToTrace; ! static TraceBuilderResult create(AbstractBlockBase<?>[] blocks, ArrayList<Trace> traces, Trace[] blockToTrace, TrivialTracePredicate pred) { connect(traces, blockToTrace); ! ArrayList<Trace> newTraces = reorderTraces(traces, pred); TraceBuilderResult traceBuilderResult = new TraceBuilderResult(newTraces, blockToTrace); traceBuilderResult.numberTraces(); assert verify(traceBuilderResult, blocks.length); return traceBuilderResult; } --- 37,49 ---- } private final ArrayList<Trace> traces; private final Trace[] blockToTrace; ! static TraceBuilderResult create(DebugContext debug, AbstractBlockBase<?>[] blocks, ArrayList<Trace> traces, Trace[] blockToTrace, TrivialTracePredicate pred) { connect(traces, blockToTrace); ! ArrayList<Trace> newTraces = reorderTraces(debug, traces, pred); TraceBuilderResult traceBuilderResult = new TraceBuilderResult(newTraces, blockToTrace); traceBuilderResult.numberTraces(); assert verify(traceBuilderResult, blocks.length); return traceBuilderResult; }
*** 155,179 **** } } } @SuppressWarnings("try") ! private static ArrayList<Trace> reorderTraces(ArrayList<Trace> oldTraces, TrivialTracePredicate pred) { if (pred == null) { return oldTraces; } ! try (Indent indent = Debug.logAndIndent("ReorderTrace")) { ArrayList<Trace> newTraces = new ArrayList<>(oldTraces.size()); for (int oldTraceIdx = 0; oldTraceIdx < oldTraces.size(); oldTraceIdx++) { Trace currentTrace = oldTraces.get(oldTraceIdx); if (!alreadyProcessed(newTraces, currentTrace)) { assert currentTrace.getId() == oldTraceIdx : "Index mismatch"; // add current trace addTrace(newTraces, currentTrace); for (Trace succTrace : currentTrace.getSuccessors()) { if (pred.isTrivialTrace(succTrace) && !alreadyProcessed(newTraces, succTrace)) { ! Debug.log("Moving trivial trace from %d to %d", succTrace.getId(), newTraces.size()); // add trivial successor trace addTrace(newTraces, succTrace); } } } --- 155,179 ---- } } } @SuppressWarnings("try") ! private static ArrayList<Trace> reorderTraces(DebugContext debug, ArrayList<Trace> oldTraces, TrivialTracePredicate pred) { if (pred == null) { return oldTraces; } ! try (Indent indent = debug.logAndIndent("ReorderTrace")) { ArrayList<Trace> newTraces = new ArrayList<>(oldTraces.size()); for (int oldTraceIdx = 0; oldTraceIdx < oldTraces.size(); oldTraceIdx++) { Trace currentTrace = oldTraces.get(oldTraceIdx); if (!alreadyProcessed(newTraces, currentTrace)) { assert currentTrace.getId() == oldTraceIdx : "Index mismatch"; // add current trace addTrace(newTraces, currentTrace); for (Trace succTrace : currentTrace.getSuccessors()) { if (pred.isTrivialTrace(succTrace) && !alreadyProcessed(newTraces, succTrace)) { ! debug.log("Moving trivial trace from %d to %d", succTrace.getId(), newTraces.size()); // add trivial successor trace addTrace(newTraces, succTrace); } } }
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/alloc/TraceBuilderResult.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File