Don't use showPass in the backend (#8973)
authorSimon Marlow <marlowsd@gmail.com>
Sun, 8 Jun 2014 10:17:57 +0000 (11:17 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Sun, 8 Jun 2014 10:21:12 +0000 (11:21 +0100)
compiler/cmm/CmmPipeline.hs
compiler/codeGen/StgCmm.hs
compiler/main/CodeOutput.lhs
compiler/main/HscMain.hs

index 825ffb8..4314695 100644 (file)
@@ -38,8 +38,6 @@ cmmPipeline  :: HscEnv -- Compilation env including
 cmmPipeline hsc_env topSRT prog =
   do let dflags = hsc_dflags hsc_env
 
-     showPass dflags "CPSZ"
-
      tops <- {-# SCC "tops" #-} mapM (cpsTop hsc_env) prog
 
      (topSRT, cmms) <- {-# SCC "doSRTs" #-} doSRTs dflags topSRT tops
index 740ab5f..efc89fe 100644 (file)
@@ -39,7 +39,6 @@ import DataCon
 import Name
 import TyCon
 import Module
-import ErrUtils
 import Outputable
 import Stream
 import BasicTypes
@@ -62,9 +61,7 @@ codeGen :: DynFlags
 
 codeGen dflags this_mod data_tycons
         cost_centre_info stg_binds hpc_info
-  = do  { liftIO $ showPass dflags "New CodeGen"
-
-              -- cg: run the code generator, and yield the resulting CmmGroup
+  = do  {     -- cg: run the code generator, and yield the resulting CmmGroup
               -- Using an IORef to store the state is a bit crude, but otherwise
               -- we would need to add a state monad layer.
         ; cgref <- liftIO $ newIORef =<< initC
index 7ae28b3..c0a609b 100644 (file)
@@ -74,7 +74,6 @@ codeOutput dflags this_mod filenm location foreign_stubs pkg_deps cmm_stream
                 ; return cmm
                 }
 
-        ; showPass dflags "CodeOutput"
         ; stubs_exist <- outputForeignStubs dflags this_mod location foreign_stubs
         ; case hscTarget dflags of {
              HscAsm         -> outputAsm dflags this_mod filenm linted_cmm_stream;
index 9b6c4d7..ea31ed7 100644 (file)
@@ -1150,8 +1150,15 @@ hscGenHardCode hsc_env cgguts mod_summary output_filename = do
 
         ------------------  Code generation ------------------
 
-        cmms <- {-# SCC "NewCodeGen" #-}
-                         tryNewCodeGen hsc_env this_mod data_tycons
+        -- The back-end is streamed: each top-level function goes
+        -- from Stg all the way to asm before dealing with the next
+        -- top-level function, so showPass isn't very useful here.
+        -- Hence we have one showPass for the whole backend, the
+        -- next showPass after this will be "Assembler".
+        showPass dflags "CodeGen"
+
+        cmms <- {-# SCC "StgCmm" #-}
+                         doCodeGen hsc_env this_mod data_tycons
                              cost_centre_info
                              stg_binds hpc_info
 
@@ -1228,15 +1235,15 @@ hscCompileCmmFile hsc_env filename output_filename = runHsc hsc_env $ do
 
 -------------------- Stuff for new code gen ---------------------
 
-tryNewCodeGen   :: HscEnv -> Module -> [TyCon]
-                -> CollectedCCs
-                -> [StgBinding]
-                -> HpcInfo
-                -> IO (Stream IO CmmGroup ())
+doCodeGen   :: HscEnv -> Module -> [TyCon]
+            -> CollectedCCs
+            -> [StgBinding]
+            -> HpcInfo
+            -> IO (Stream IO CmmGroup ())
          -- Note we produce a 'Stream' of CmmGroups, so that the
          -- backend can be run incrementally.  Otherwise it generates all
          -- the C-- up front, which has a significant space cost.
-tryNewCodeGen hsc_env this_mod data_tycons
+doCodeGen hsc_env this_mod data_tycons
               cost_centre_info stg_binds hpc_info = do
     let dflags = hsc_dflags hsc_env