diff graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java @ 4353:043bec543161

More work on debug framework. Removed concept of GraalContext.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 17 Jan 2012 23:35:21 +0100
parents 5a84f5548fc4
children 249752adcb8d
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java	Mon Jan 16 18:49:12 2012 +0100
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java	Tue Jan 17 23:35:21 2012 +0100
@@ -41,6 +41,7 @@
 import com.oracle.max.graal.compiler.lir.LIRInstruction.OperandMode;
 import com.oracle.max.graal.compiler.lir.LIRInstruction.ValueProcedure;
 import com.oracle.max.graal.compiler.util.*;
+import com.oracle.max.graal.debug.*;
 import com.oracle.max.graal.graph.*;
 import com.oracle.max.graal.nodes.*;
 
@@ -51,7 +52,6 @@
  */
 public final class LinearScan {
 
-    final GraalContext context;
     final CiTarget target;
     final RiMethod method;
     final LIR ir;
@@ -122,8 +122,7 @@
     private final StructuredGraph graph;
 
 
-    public LinearScan(GraalContext context, CiTarget target, RiResolvedMethod method, StructuredGraph graph, LIR ir, LIRGenerator gen, FrameMap frameMap) {
-        this.context = context;
+    public LinearScan(CiTarget target, RiResolvedMethod method, StructuredGraph graph, LIR ir, LIRGenerator gen, FrameMap frameMap) {
         this.target = target;
         this.method = method;
         this.graph = graph;
@@ -1786,8 +1785,15 @@
         }
     }
 
+    private static final Debug.Timer timerLifetimeAnalysis = Debug.timer("LifetimeAnalysis");
+    private static final Debug.Timer timerLinearScan = Debug.timer("LinearScan");
+    private static final Debug.Timer timerLinearScanResolution = Debug.timer("LinearScanResolution");
+    private static final Debug.Timer timerDebugInfo = Debug.timer("DebugInfo");
+    private static final Debug.Timer timerControlFlowOptimizations = Debug.timer("ControlFlowOptimizations");
+
     public void allocate() {
-        context.timers.startScope("Lifetime Analysis");
+
+        timerLifetimeAnalysis.start();
         try {
             numberInstructions();
 
@@ -1799,27 +1805,27 @@
             buildIntervals();
             sortIntervalsBeforeAllocation();
         } finally {
-            context.timers.endScope();
+            timerLifetimeAnalysis.stop();
         }
 
-        context.timers.startScope("Linear Scan");
+        timerLinearScan.start();
         try {
             printIntervals("Before register allocation");
 
             allocateRegisters();
 
         } finally {
-            context.timers.endScope();
+            timerLinearScan.stop();
         }
 
-        context.timers.startScope("Resolution");
+        timerLinearScanResolution.start();
         try {
             resolveDataFlow();
         } finally {
-            context.timers.endScope();
+            timerLinearScanResolution.stop();
         }
 
-        context.timers.startScope("Create Debug Info");
+        timerDebugInfo.start();
         try {
             frameMap.finish();
 
@@ -1839,17 +1845,17 @@
                 verifyIntervals();
             }
         } finally {
-            context.timers.endScope();
+            timerDebugInfo.stop();
         }
 
-        context.timers.startScope("Control Flow Optimizations");
+        timerControlFlowOptimizations.start();
         try {
             printLir("After register number assignment", true);
             EdgeMoveOptimizer.optimize(ir.linearScanOrder());
             ControlFlowOptimizer.optimize(ir);
             printLir("After control flow optimization", false);
         } finally {
-            context.timers.endScope();
+            timerControlFlowOptimizations.stop();
         }
     }
 
@@ -1875,9 +1881,7 @@
             TTY.println();
         }
 
-        if (context.isObserved()) {
-            context.observable.fireCompilationEvent(label, graph, this, Arrays.copyOf(intervals, intervalsSize));
-        }
+        Debug.dump(Arrays.copyOf(intervals, intervalsSize), label);
     }
 
     void printLir(String label, boolean hirValid) {
@@ -1888,9 +1892,7 @@
             TTY.println();
         }
 
-        if (context.isObserved()) {
-            context.observable.fireCompilationEvent(label, hirValid ? graph : null, ir);
-        }
+        Debug.dump(ir, label);
     }
 
     boolean verify() {