X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FcodeGen%2FSMRep.lhs;h=c2a2a44e5c7d8e728c91afd74eb59301b03fa4a4;hp=c807703b132a404273aaf450134c03cacbf9b51d;hb=9ff76535edb25ab7434284adddb5c64708ecb547;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/compiler/codeGen/SMRep.lhs b/compiler/codeGen/SMRep.lhs index c807703..c2a2a44 100644 --- a/compiler/codeGen/SMRep.lhs +++ b/compiler/codeGen/SMRep.lhs @@ -1,7 +1,9 @@ % +% (c) The University of Glasgow 2006 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998 % -\section[SMRep]{Storage manager representations of closure} + +Storage manager representation of closures This is here, rather than in ClosureInfo, just to keep nhc happy. Other modules should access this info through ClosureInfo. @@ -29,25 +31,23 @@ module SMRep ( isStaticRep, fixedHdrSize, arrWordsHdrSize, arrPtrsHdrSize, profHdrSize, thunkHdrSize, - tablesNextToCode, smRepClosureType, smRepClosureTypeInt, - rET_SMALL, rET_VEC_SMALL, rET_BIG, rET_VEC_BIG + rET_SMALL, rET_BIG ) where #include "HsVersions.h" #include "../includes/MachDeps.h" -import Id ( Id, idType ) -import Type ( Type, typePrimRep, PrimRep(..) ) -import TyCon ( TyCon, tyConPrimRep ) -import MachOp-- ( MachRep(..), MachHint(..), wordRep ) -import StaticFlags ( opt_SccProfilingOn, opt_GranMacros, - opt_Unregisterised ) +import Id +import Type +import TyCon +import MachOp +import StaticFlags import Constants import Outputable -import DATA_WORD +import Data.Word \end{code} @@ -158,13 +158,13 @@ primRepHint FloatRep = FloatHint primRepHint DoubleRep = FloatHint idCgRep :: Id -> CgRep -idCgRep = typeCgRep . idType +idCgRep x = typeCgRep . idType $ x tyConCgRep :: TyCon -> CgRep tyConCgRep = primRepToCgRep . tyConPrimRep typeCgRep :: Type -> CgRep -typeCgRep = primRepToCgRep . typePrimRep +typeCgRep = primRepToCgRep . typePrimRep typeHint :: Type -> MachHint typeHint = primRepHint . typePrimRep @@ -294,16 +294,6 @@ thunkHdrSize = fixedHdrSize + smp_hdr \end{code} \begin{code} --- IA64 mangler doesn't place tables next to code -tablesNextToCode :: Bool -#if defined(ia64_TARGET_ARCH) || defined(powerpc64_TARGET_ARCH) -tablesNextToCode = False -#else -tablesNextToCode = not opt_Unregisterised -#endif -\end{code} - -\begin{code} isStaticRep :: SMRep -> Bool isStaticRep (GenericRep is_static _ _ _) = is_static isStaticRep BlackHoleRep = False @@ -313,10 +303,11 @@ isStaticRep BlackHoleRep = False #include "../includes/ClosureTypes.h" -- Defines CONSTR, CONSTR_1_0 etc - -smRepClosureType :: SMRep -> ClosureType -smRepClosureType (GenericRep _ _ _ ty) = ty -smRepClosureType BlackHoleRep = panic "smRepClosureType: black hole" +-- krc: only called by tickyDynAlloc in CgTicky; return +-- Nothing for a black hole so we can at least make something work. +smRepClosureType :: SMRep -> Maybe ClosureType +smRepClosureType (GenericRep _ _ _ ty) = Just ty +smRepClosureType BlackHoleRep = Nothing smRepClosureTypeInt :: SMRep -> Int smRepClosureTypeInt (GenericRep False 1 0 Constr) = CONSTR_1_0 @@ -354,8 +345,6 @@ smRepClosureTypeInt rep = panic "smRepClosuretypeint" -- We export these ones rET_SMALL = (RET_SMALL :: Int) -rET_VEC_SMALL = (RET_VEC_SMALL :: Int) rET_BIG = (RET_BIG :: Int) -rET_VEC_BIG = (RET_VEC_BIG :: Int) \end{code}