%
-% (c) The GRASP/AQUA Project, Glasgow University, 1992-1995
+% (c) The GRASP/AQUA Project, Glasgow University, 1992-1996
%
\section[SMRep]{Storage manager representations of closure}
module SMRep (
SMRep(..), SMSpecRepKind(..), SMUpdateKind(..),
getSMInfoStr, getSMInitHdrStr, getSMUpdInplaceHdrStr,
- ltSMRepHdr -- UNUSED, equivSMRepHdr
+ ltSMRepHdr
) where
-import Outputable
-import Pretty
-import Util
+import Ubiq{-uitous-}
+
+import Pretty ( ppStr )
+import Util ( panic )
\end{code}
%************************************************************************
SMSpecRepKind -- Which kind of specialised representation
Int -- # ptr words
Int -- # non-ptr words
- SMUpdateKind -- Updatable?
+ SMUpdateKind -- Updatable?
| GenericRep -- GC routines consult sizes in info tbl
Int -- # ptr words
Int -- # non-ptr words
- SMUpdateKind -- Updatable?
+ SMUpdateKind -- Updatable?
| BigTupleRep -- All ptrs, size in var-hdr field
-- Used for big tuples
Never generated by the compiler, and only used in the RTS when
mutuples don't require special attention at GC time (e.g. 2s)
When it is used, it is a primitive object (never entered).
- May be mutable...probably should never be used in the parallel
+ May be mutable...probably should never be used in the parallel
system, since we need to distinguish mutables from immutables when
deciding whether to copy or move closures across processors.
(DataRep a1) == (DataRep a2) = a1 == a2
a == b = (tagOf_SMRep a) _EQ_ (tagOf_SMRep b)
-{- UNUSED:
-equivSMRepHdr :: SMRep -> SMRep -> Bool
-a `equivSMRepHdr` b = (tagOf_SMRep a) _EQ_ (tagOf_SMRep b)
--}
-
ltSMRepHdr :: SMRep -> SMRep -> Bool
a `ltSMRepHdr` b = (tagOf_SMRep a) _LT_ (tagOf_SMRep b)