changeset 22600:530daaf84457

TraceRA: make TraceLinearScanAllocationPhases static.
author Josef Eisl <josef.eisl@jku.at>
date Tue, 08 Sep 2015 16:38:30 +0200
parents b83f27f75684
children 2f82e3ed0d5d
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceLinearScan.java
diffstat 1 files changed, 12 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- 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)) {