X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FcodeGen%2FCgMonad.lhs;h=5f8e1d2d97549c50f2033b4dd4eb6d99e6a11bab;hb=7876920bbb403c2626878224d64f678b89748b07;hp=18902fc84b856b86fcf6395b8e9acdbe5aca58de;hpb=1fb1ab5d53a09607e7f6d2450806760688396387;p=ghc-hetmet.git diff --git a/ghc/compiler/codeGen/CgMonad.lhs b/ghc/compiler/codeGen/CgMonad.lhs index 18902fc..5f8e1d2 100644 --- a/ghc/compiler/codeGen/CgMonad.lhs +++ b/ghc/compiler/codeGen/CgMonad.lhs @@ -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} %* * %************************************************************************