--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/lir/trace/TraceLSRAIntervalBuildingBench.java 2017-03-20 17:40:17.000000000 -0700 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/lir/trace/TraceLSRAIntervalBuildingBench.java 2017-03-20 17:40:17.000000000 -0700 @@ -22,14 +22,11 @@ */ 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; @@ -41,9 +38,12 @@ 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; @@ -62,7 +62,9 @@ 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); @@ -74,7 +76,7 @@ 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; @@ -84,7 +86,7 @@ LIRSuites ls = super.getLIRSuites(); LIRPhaseSuite 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()); } @@ -98,7 +100,7 @@ // 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() {