src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/lir/trace/TraceLSRAIntervalBuildingBench.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.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/lir/trace/TraceLSRAIntervalBuildingBench.java	Mon Mar 20 17:40:17 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/lir/trace/TraceLSRAIntervalBuildingBench.java	Mon Mar 20 17:40:17 2017

*** 20,37 **** --- 20,34 ---- * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.microbenchmarks.lir.trace; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.Level; import org.openjdk.jmh.annotations.Param; import org.openjdk.jmh.annotations.Setup; import org.graalvm.compiler.core.common.alloc.RegisterAllocationConfig; import org.graalvm.compiler.core.common.alloc.Trace; import org.graalvm.compiler.core.common.alloc.TraceBuilderResult; + import org.graalvm.compiler.lir.alloc.trace.GlobalLivenessAnalysisPhase; + import org.graalvm.compiler.lir.alloc.trace.GlobalLivenessInfo; import org.graalvm.compiler.lir.alloc.trace.TraceBuilderPhase; import org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanLifetimeAnalysisPhase; import org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanLifetimeAnalysisPhase.Analyser; import org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase; import org.graalvm.compiler.lir.alloc.trace.lsra.TraceLinearScanPhase.TraceLinearScan;
*** 39,51 **** --- 36,51 ---- import org.graalvm.compiler.lir.gen.LIRGeneratorTool.MoveFactory; import org.graalvm.compiler.lir.phases.AllocationPhase; import org.graalvm.compiler.lir.phases.AllocationPhase.AllocationContext; import org.graalvm.compiler.lir.phases.LIRPhaseSuite; import org.graalvm.compiler.lir.phases.LIRSuites; import org.graalvm.compiler.lir.ssi.SSIConstructionPhase; import org.graalvm.compiler.microbenchmarks.graal.GraalBenchmark; import org.graalvm.compiler.microbenchmarks.lir.GraalCompilerState; + import org.openjdk.jmh.annotations.Benchmark; + import org.openjdk.jmh.annotations.Level; + import org.openjdk.jmh.annotations.Param; + import org.openjdk.jmh.annotations.Setup; import jdk.vm.ci.code.TargetDescription; /** * Benchmarks {@link TraceLinearScan TraceRA} {@link TraceLinearScanLifetimeAnalysisPhase lifetime
*** 60,70 **** --- 60,72 ---- @SuppressWarnings("try") protected void run(TargetDescription target, LIRGenerationResult lirGenRes, AllocationContext context) { MoveFactory spillMoveFactory = context.spillMoveFactory; RegisterAllocationConfig registerAllocationConfig = context.registerAllocationConfig; TraceBuilderResult resultTraces = context.contextLookup(TraceBuilderResult.class); ! TraceLinearScanPhase phase = new TraceLinearScanPhase(target, lirGenRes, spillMoveFactory, registerAllocationConfig, resultTraces, false, null); ! GlobalLivenessInfo livenessInfo = context.contextLookup(GlobalLivenessInfo.class); + assert livenessInfo != null; + TraceLinearScanPhase phase = new TraceLinearScanPhase(target, lirGenRes, spillMoveFactory, registerAllocationConfig, resultTraces, false, null, livenessInfo); for (Trace trace : resultTraces.getTraces()) { allocator = phase.createAllocator(trace); Analyser a = new TraceLinearScanLifetimeAnalysisPhase.Analyser(allocator, resultTraces); a.analyze(); }
*** 72,92 **** --- 74,94 ---- } public abstract static class AllocationState extends GraalCompilerState { private static final DummyTraceAllocatorPhase LTA_PHASE = new DummyTraceAllocatorPhase(); ! private static final SSIConstructionPhase SSI_CONSTRUCTION_PHASE = new SSIConstructionPhase(); ! private static final GlobalLivenessAnalysisPhase LIVENESS_ANALYSIS_PHASE = new GlobalLivenessAnalysisPhase(); private static final TraceBuilderPhase TRACE_BUILDER_PHASE = new TraceBuilderPhase(); private AllocationContext allocationContext; @Override protected LIRSuites getLIRSuites() { LIRSuites ls = super.getLIRSuites(); LIRPhaseSuite<AllocationContext> allocationStage = new LIRPhaseSuite<>(); allocationStage.appendPhase(TRACE_BUILDER_PHASE); ! allocationStage.appendPhase(SSI_CONSTRUCTION_PHASE); ! allocationStage.appendPhase(LIVENESS_ANALYSIS_PHASE); return new LIRSuites(ls.getPreAllocationOptimizationStage(), allocationStage, ls.getPostAllocationOptimizationStage()); } @Setup(Level.Trial) public void setup() {
*** 96,106 **** --- 98,108 ---- generateLIR(); preAllocationStage(); // context for all allocation phases allocationContext = createAllocationContext(); applyLIRPhase(TRACE_BUILDER_PHASE, allocationContext); ! applyLIRPhase(SSI_CONSTRUCTION_PHASE, allocationContext); ! applyLIRPhase(LIVENESS_ANALYSIS_PHASE, allocationContext); } public TraceLinearScan compile() { applyLIRPhase(LTA_PHASE, allocationContext); return LTA_PHASE.allocator;

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