# HG changeset patch # User Josef Eisl # Date 1441723110 -7200 # Node ID 530daaf84457af59de19fab7891d060a2e3c77ec # Parent b83f27f756847ea6d9341d3392c3e08b11e44968 TraceRA: make TraceLinearScanAllocationPhases static. diff -r b83f27f75684 -r 530daaf84457 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScan.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScan.java Tue Sep 08 18:53:43 2015 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScan.java Tue Sep 08 16:38:30 2015 +0200 @@ -74,6 +74,13 @@ */ final class TraceLinearScan { + private static final TraceLinearScanRegisterAllocationPhase TRACE_LINEAR_SCAN_REGISTER_ALLOCATION_PHASE = new TraceLinearScanRegisterAllocationPhase(); + private static final TraceLinearScanAssignLocationsPhase TRACE_LINEAR_SCAN_ASSIGN_LOCATIONS_PHASE = new TraceLinearScanAssignLocationsPhase(); + // TODO (je) use! + @SuppressWarnings("unused") private static final TraceLinearScanEliminateSpillMovePhase TRACE_LINEAR_SCAN_ELIMINATE_SPILL_MOVE_PHASE = new TraceLinearScanEliminateSpillMovePhase(); + private static final TraceLinearScanResolveDataFlowPhase TRACE_LINEAR_SCAN_RESOLVE_DATA_FLOW_PHASE = new TraceLinearScanResolveDataFlowPhase(); + private static final TraceLinearScanLifetimeAnalysisPhase TRACE_LINEAR_SCAN_LIFETIME_ANALYSIS_PHASE = new TraceLinearScanLifetimeAnalysisPhase(); + public static class BlockData { /** @@ -716,21 +723,19 @@ try (Indent indent = Debug.logAndIndent("LinearScan allocate")) { TraceLinearScanAllocationContext context = new TraceLinearScanAllocationContext(spillMoveFactory, registerAllocationConfig, traceBuilderResult, this); - createLifetimeAnalysisPhase().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false); + TRACE_LINEAR_SCAN_LIFETIME_ANALYSIS_PHASE.apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false); try (Scope s = Debug.scope("AfterLifetimeAnalysis", (Object) intervals())) { sortIntervalsBeforeAllocation(); sortFixedIntervalsBeforeAllocation(); - createRegisterAllocationPhase().apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false); + TRACE_LINEAR_SCAN_REGISTER_ALLOCATION_PHASE.apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false); // resolve intra-trace data-flow - TraceLinearScanResolveDataFlowPhase dataFlowPhase = createResolveDataFlowPhase(); - dataFlowPhase.apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false); - Debug.dump(TraceRegisterAllocationPhase.TRACE_DUMP_LEVEL, sortedBlocks(), "%s", dataFlowPhase.getName()); + TRACE_LINEAR_SCAN_RESOLVE_DATA_FLOW_PHASE.apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false); + Debug.dump(TraceRegisterAllocationPhase.TRACE_DUMP_LEVEL, sortedBlocks(), "%s", TRACE_LINEAR_SCAN_RESOLVE_DATA_FLOW_PHASE.getName()); - TraceLinearScanAssignLocationsPhase assignPhase = createAssignLocationsPhase(); - assignPhase.apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false); + TRACE_LINEAR_SCAN_ASSIGN_LOCATIONS_PHASE.apply(target, lirGenRes, codeEmittingOrder, linearScanOrder, context, false); if (DetailedAsserts.getValue()) { verifyIntervals(); @@ -741,29 +746,6 @@ } } - protected TraceLinearScanLifetimeAnalysisPhase createLifetimeAnalysisPhase() { - return new TraceLinearScanLifetimeAnalysisPhase(); - } - - protected TraceLinearScanResolveDataFlowPhase createResolveDataFlowPhase() { - return new TraceLinearScanResolveDataFlowPhase(); - } - - protected TraceLinearScanEliminateSpillMovePhase createSpillMoveEliminationPhase() { - return new TraceLinearScanEliminateSpillMovePhase(); - } - - protected TraceLinearScanAssignLocationsPhase createAssignLocationsPhase() { - return new TraceLinearScanAssignLocationsPhase(); - } - - protected void beforeSpillMoveElimination() { - } - - protected TraceLinearScanRegisterAllocationPhase createRegisterAllocationPhase() { - return new TraceLinearScanRegisterAllocationPhase(); - } - @SuppressWarnings("try") public void printIntervals(String label) { if (Debug.isDumpEnabled(TraceRegisterAllocationPhase.TRACE_DUMP_LEVEL)) {