X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FcodeGen%2FClosureInfo.lhs;h=d0d2ed98b2b414253d6c638fcb90f340168c3d6e;hb=c23fe488fc0c4b019a2dc3186106e4654b5f5107;hp=27aed3a70e8163bf084e015a042e9e716f681c19;hpb=c098722488ee64a5288a9f20352310cfd08ae86b;p=ghc-hetmet.git diff --git a/compiler/codeGen/ClosureInfo.lhs b/compiler/codeGen/ClosureInfo.lhs index 27aed3a..d0d2ed9 100644 --- a/compiler/codeGen/ClosureInfo.lhs +++ b/compiler/codeGen/ClosureInfo.lhs @@ -13,8 +13,9 @@ the STG paper. \begin{code} module ClosureInfo ( - ClosureInfo, LambdaFormInfo, SMRep, -- all abstract - StandardFormInfo, + ClosureInfo(..), LambdaFormInfo(..), -- would be abstract but + StandardFormInfo(..), -- mkCmmInfo looks inside + SMRep, ArgDescr(..), Liveness(..), C_SRT(..), needsSRT, @@ -123,10 +124,15 @@ data ClosureInfo data C_SRT = NoC_SRT | C_SRT !CLabel !WordOff !StgHalfWord {-bitmap or escape-} + deriving (Eq) needsSRT :: C_SRT -> Bool needsSRT NoC_SRT = False needsSRT (C_SRT _ _ _) = True + +instance Outputable C_SRT where + ppr (NoC_SRT) = ptext SLIT("_no_srt_") + ppr (C_SRT label off bitmap) = parens (ppr label <> comma <> ppr off <> comma <> text (show bitmap)) \end{code} %************************************************************************ @@ -184,7 +190,7 @@ data LambdaFormInfo data ArgDescr = ArgSpec -- Fits one of the standard patterns - !Int -- RTS type identifier ARG_P, ARG_N, ... + !StgHalfWord -- RTS type identifier ARG_P, ARG_N, ... | ArgGen -- General case Liveness -- Details about the arguments @@ -953,5 +959,3 @@ getTyDescription ty getPredTyDescription (ClassP cl tys) = getOccString cl getPredTyDescription (IParam ip ty) = getOccString (ipNameName ip) \end{code} - -