[project @ 1998-08-14 11:29:07 by sof]
[ghc-hetmet.git] / ghc / compiler / codeGen / CgMonad.lhs
index 18902fc..5f8e1d2 100644 (file)
@@ -7,25 +7,23 @@ See the beginning of the top-level @CodeGen@ module, to see how this
 monadic stuff fits into the Big Picture.
 
 \begin{code}
-#include "HsVersions.h"
-
 module CgMonad (
-       SYN_IE(Code),   -- type
-       SYN_IE(FCode),  -- type
+       Code,   -- type
+       FCode,  -- type
 
        initC, thenC, thenFC, listCs, listFCs, mapCs, mapFCs,
        returnFC, fixC, absC, nopC, getAbsC,
 
        forkClosureBody, forkStatics, forkAlts, forkEval,
        forkEvalHelp, forkAbsC,
-       SYN_IE(SemiTaggingStuff),
+       SemiTaggingStuff,
 
        addBindC, addBindsC, modifyBindC, lookupBindC,
 
        EndOfBlockInfo(..),
        setEndOfBlockInfo, getEndOfBlockInfo,
 
-       SYN_IE(AStackUsage), SYN_IE(BStackUsage), SYN_IE(HeapUsage),
+       AStackUsage, BStackUsage, HeapUsage,
        StubFlag,
        isStubbed,
 
@@ -47,9 +45,12 @@ module CgMonad (
        CompilationInfo(..)
     ) where
 
-IMP_Ubiq(){-uitous-}
-IMPORT_DELOOPER(CgLoop1)               -- stuff from CgBindery and CgUsages
-IMPORT_1_3(List(nub))
+#include "HsVersions.h"
+
+import List    ( nub )
+
+import {-# SOURCE #-} CgBindery ( CgIdInfo(..), CgBindings, maybeAStkLoc, maybeBStkLoc, nukeVolatileBinds )
+import {-# SOURCE #-} CgUsages
 
 import AbsCSyn
 import AbsCUtils       ( mkAbsCStmts )
@@ -57,22 +58,24 @@ import CmdLineOpts  ( opt_SccProfilingOn, opt_DoTickyProfiling,
                          opt_OmitBlackHoling
                        )
 import HeapOffs                ( maxOff,
-                         SYN_IE(VirtualSpAOffset), SYN_IE(VirtualSpBOffset)
+                         VirtualSpAOffset, VirtualSpBOffset,
+                         HeapOffset
                        )
+import CLabel           ( CLabel )
 import Id              ( idType,
                          nullIdEnv, mkIdEnv, addOneToIdEnv,
-                         modifyIdEnv, lookupIdEnv, rngIdEnv, SYN_IE(IdEnv),
-                         SYN_IE(ConTag), GenId{-instance Outputable-}
+                         modifyIdEnv, lookupIdEnv, rngIdEnv, IdEnv,
+                         ConTag, GenId{-instance Outputable-},
+                         Id
                        )
+import Literal          ( Literal )
 import Maybes          ( maybeToBool )
-import PprStyle                ( PprStyle(..) )
-import PprType         ( GenType{-instance Outputable-} )
-import Pretty          ( ppAboves, ppCat, ppPStr )
 import PrimRep         ( getPrimRepSize, PrimRep(..) )
-import StgSyn          ( SYN_IE(StgLiveVars) )
+import StgSyn          ( StgLiveVars )
 import Type            ( typePrimRep )
 import UniqSet         ( elementOfUniqSet )
-import Util            ( sortLt, panic, pprPanic )
+import Util            ( sortLt )
+import Outputable
 
 infixr 9 `thenC`       -- Right-associative!
 infixr 9 `thenFC`
@@ -688,19 +691,19 @@ lookupBindC name info_down@(MkCgInfoDown _ static_binds _)
                   Just this -> this
                   Nothing
                     -> pprPanic "lookupBindC:no info!\n"
-                       (ppAboves [
-                           ppCat [ppPStr SLIT("for:"), ppr PprShowAll name],
-                           ppPStr SLIT("(probably: data dependencies broken by an optimisation pass)"),
-                           ppPStr SLIT("static binds for:"),
-                           ppAboves [ ppr PprDebug i | (MkCgIdInfo i _ _ _) <- rngIdEnv static_binds ],
-                           ppPStr SLIT("local binds for:"),
-                           ppAboves [ ppr PprDebug i | (MkCgIdInfo i _ _ _) <- rngIdEnv local_binds ]
+                       (vcat [
+                           hsep [ptext SLIT("for:"), ppr name],
+                           ptext SLIT("(probably: data dependencies broken by an optimisation pass)"),
+                           ptext SLIT("static binds for:"),
+                           vcat [ ppr i | (MkCgIdInfo i _ _ _) <- rngIdEnv static_binds ],
+                           ptext SLIT("local binds for:"),
+                           vcat [ ppr i | (MkCgIdInfo i _ _ _) <- rngIdEnv local_binds ]
                         ])
 \end{code}
 
 %************************************************************************
 %*                                                                     *
-\subsection[CgStackery-deadslots]{Finding dead stack slots}
+\subsection[CgMonad-deadslots]{Finding dead stack slots}
 %*                                                                     *
 %************************************************************************