X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FcodeGen%2FSMRep.lhs;h=f35118d1c9211f7abf4f8a32eff53723b0cca28b;hp=987562c3642271f5f2aecf322cc8174dd46f1079;hb=889c084e943779e76d19f2ef5e970ff655f511eb;hpb=176fa33f17dd78355cc572e006d2ab26898e2c69 diff --git a/compiler/codeGen/SMRep.lhs b/compiler/codeGen/SMRep.lhs index 987562c..f35118d 100644 --- a/compiler/codeGen/SMRep.lhs +++ b/compiler/codeGen/SMRep.lhs @@ -9,13 +9,6 @@ This is here, rather than in ClosureInfo, just to keep nhc happy. Other modules should access this info through ClosureInfo. \begin{code} -{-# OPTIONS -w #-} --- The above warning supression flag is a temporary kludge. --- While working on this module you are encouraged to remove it and fix --- any warnings in the module. See --- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings --- for details - module SMRep ( -- Words and bytes StgWord, StgHalfWord, @@ -46,7 +39,7 @@ module SMRep ( #include "../includes/MachDeps.h" -import CmmExpr -- CmmType and friends +import CmmType import Id import Type import TyCon @@ -76,13 +69,17 @@ StgWord is a type representing an StgWord on the target platform. #if SIZEOF_HSWORD == 4 type StgWord = Word32 type StgHalfWord = Word16 -hALF_WORD_SIZE = 2 :: ByteOff -hALF_WORD_SIZE_IN_BITS = 16 :: Int +hALF_WORD_SIZE :: ByteOff +hALF_WORD_SIZE = 2 +hALF_WORD_SIZE_IN_BITS :: Int +hALF_WORD_SIZE_IN_BITS = 16 #elif SIZEOF_HSWORD == 8 type StgWord = Word64 type StgHalfWord = Word32 -hALF_WORD_SIZE = 4 :: ByteOff -hALF_WORD_SIZE_IN_BITS = 32 :: Int +hALF_WORD_SIZE :: ByteOff +hALF_WORD_SIZE = 4 +hALF_WORD_SIZE_IN_BITS :: Int +hALF_WORD_SIZE_IN_BITS = 32 #else #error unknown SIZEOF_HSWORD #endif @@ -177,15 +174,15 @@ computation of GC liveness info. \begin{code} isFollowableArg :: CgRep -> Bool -- True <=> points to a heap object isFollowableArg PtrArg = True -isFollowableArg other = False +isFollowableArg _ = False isVoidArg :: CgRep -> Bool isVoidArg VoidArg = True -isVoidArg other = False +isVoidArg _ = False nonVoidArg :: CgRep -> Bool nonVoidArg VoidArg = False -nonVoidArg other = True +nonVoidArg _ = True -- isFloatingArg is used to distinguish @Double@ and @Float@ which -- cause inadvertent numeric conversions if you aren't jolly careful. @@ -249,7 +246,7 @@ data SMRep | BlackHoleRep data ClosureType -- Corresponds 1-1 with the varieties of closures - -- implemented by the RTS. Compare with ghc/includes/ClosureTypes.h + -- implemented by the RTS. Compare with includes/rts/storage/ClosureTypes.h = Constr | ConstrNoCaf | Fun @@ -261,16 +258,12 @@ Size of a closure header. \begin{code} fixedHdrSize :: WordOff -fixedHdrSize = sTD_HDR_SIZE + profHdrSize + granHdrSize +fixedHdrSize = sTD_HDR_SIZE + profHdrSize profHdrSize :: WordOff profHdrSize | opt_SccProfilingOn = pROF_HDR_SIZE | otherwise = 0 -granHdrSize :: WordOff -granHdrSize | opt_GranMacros = gRAN_HDR_SIZE - | otherwise = 0 - arrWordsHdrSize :: ByteOff arrWordsHdrSize = fixedHdrSize*wORD_SIZE + sIZEOF_StgArrWords_NoHdr @@ -291,7 +284,7 @@ isStaticRep BlackHoleRep = False \end{code} \begin{code} -#include "../includes/ClosureTypes.h" +#include "../includes/rts/storage/ClosureTypes.h" -- Defines CONSTR, CONSTR_1_0 etc -- krc: only called by tickyDynAlloc in CgTicky; return @@ -331,11 +324,12 @@ smRepClosureTypeInt (GenericRep True _ _ Thunk) = THUNK_STATIC smRepClosureTypeInt BlackHoleRep = BLACKHOLE -smRepClosureTypeInt rep = panic "smRepClosuretypeint" +smRepClosureTypeInt _ = panic "smRepClosuretypeint" -- We export these ones -rET_SMALL = (RET_SMALL :: StgHalfWord) -rET_BIG = (RET_BIG :: StgHalfWord) +rET_SMALL, rET_BIG :: StgHalfWord +rET_SMALL = RET_SMALL +rET_BIG = RET_BIG \end{code}