Reduce the number of passes over the cmm in llvm BE
[ghc-hetmet.git] / compiler / llvmGen / LlvmCodeGen / Ppr.hs
index 689be6c..5afbd17 100644 (file)
@@ -15,7 +15,6 @@ import LlvmCodeGen.Data
 import CLabel
 import Cmm
 
-import DynFlags
 import FastString
 import Pretty
 import Unique
@@ -61,14 +60,14 @@ pprLlvmHeader = moduleLayout
 
 
 -- | Pretty print LLVM code
-pprLlvmCmmTop :: DynFlags -> LlvmEnv -> Int -> LlvmCmmTop -> (Doc, [LlvmVar])
-pprLlvmCmmTop dflags _ _ (CmmData _ lmdata)
-  = (vcat $ map (pprLlvmData dflags) lmdata, [])
+pprLlvmCmmTop :: LlvmEnv -> Int -> LlvmCmmTop -> (Doc, [LlvmVar])
+pprLlvmCmmTop _ _ (CmmData _ lmdata)
+  = (vcat $ map pprLlvmData lmdata, [])
 
-pprLlvmCmmTop dflags env count (CmmProc info lbl _ (ListGraph blks))
+pprLlvmCmmTop env count (CmmProc info lbl _ (ListGraph blks))
   = let static = CmmDataLabel lbl : info
         (idoc, ivar) = if not (null info)
-                          then pprCmmStatic dflags env count static
+                          then pprCmmStatic env count static
                           else (empty, [])
     in (idoc $+$ (
         let sec = mkLayoutSection (count + 1)
@@ -87,18 +86,18 @@ pprLlvmCmmTop dflags env count (CmmProc info lbl _ (ListGraph blks))
 
 
 -- | Pretty print LLVM data code
-pprLlvmData :: DynFlags -> LlvmData -> Doc
-pprLlvmData _ (globals, types) =
+pprLlvmData :: LlvmData -> Doc
+pprLlvmData (globals, types) =
     let globals' = ppLlvmGlobals globals
         types'   = ppLlvmTypes types
     in types' $+$ globals'
 
 
 -- | Pretty print CmmStatic
-pprCmmStatic :: DynFlags -> LlvmEnv -> Int -> [CmmStatic] -> (Doc, [LlvmVar])
-pprCmmStatic dflags env count stat
-  = let unres = genLlvmData dflags (Data,stat)
-        (_, (ldata, ltypes)) = resolveLlvmData dflags env unres
+pprCmmStatic :: LlvmEnv -> Int -> [CmmStatic] -> (Doc, [LlvmVar])
+pprCmmStatic env count stat
+  = let unres = genLlvmData stat
+        (_, (ldata, ltypes)) = resolveLlvmData env unres
 
         setSection (gv@(LMGlobalVar s ty l _ _), d)
             = let v = if l == Internal then [gv] else []
@@ -107,7 +106,7 @@ pprCmmStatic dflags env count stat
         setSection v = (v,[])
 
         (ldata', llvmUsed) = mapAndUnzip setSection ldata
-    in (pprLlvmData dflags (ldata', ltypes), concat llvmUsed)
+    in (pprLlvmData (ldata', ltypes), concat llvmUsed)
 
 
 -- | Create an appropriate section declaration for subsection <n> of text