[project @ 2004-08-13 13:04:50 by simonmar]
[ghc-hetmet.git] / ghc / compiler / basicTypes / Unique.lhs
index b73b38c..dbfc12a 100644 (file)
@@ -18,18 +18,16 @@ Haskell).
 module Unique (
        Unique, Uniquable(..), hasKey,
 
-       pprUnique, pprUnique10,
+       pprUnique,
 
        mkUnique,                       -- Used in UniqSupply
        mkUniqueGrimily,                -- Used in UniqSupply only!
        getKey, getKey#,                -- Used in Var, UniqFM, Name only!
-       unpkUnique, 
 
        incrUnique,                     -- Used for renumbering
        deriveUnique,                   -- Ditto
        newTagUnique,                   -- Used in CgCase
        initTyVarUnique,
-       initTidyUniques,
 
        isTupleKey, 
 
@@ -42,8 +40,11 @@ module Unique (
        mkPreludeTyConUnique, mkPreludeClassUnique,
        mkPArrDataConUnique,
 
-       mkBuiltinUnique, builtinUniques,
-       mkPseudoUnique1, mkPseudoUnique2, mkPseudoUnique3
+       mkBuiltinUnique,
+       mkPseudoUniqueC,
+       mkPseudoUniqueD,
+       mkPseudoUniqueE,
+       mkPseudoUniqueH
     ) where
 
 #include "HsVersions.h"
@@ -198,15 +199,17 @@ instance Uniquable Unique where
 
 We do sometimes make strings with @Uniques@ in them:
 \begin{code}
-pprUnique, pprUnique10 :: Unique -> SDoc
-
+pprUnique :: Unique -> SDoc
 pprUnique uniq
   = case unpkUnique uniq of
       (tag, u) -> finish_ppr tag u (iToBase62 u)
 
+#ifdef UNUSED
+pprUnique10 :: Unique -> SDoc
 pprUnique10 uniq       -- in base-10, dudes
   = case unpkUnique uniq of
       (tag, u) -> finish_ppr tag u (int u)
+#endif
 
 finish_ppr 't' u pp_u | u < 26
   =    -- Special case to make v common tyvars, t1, t2, ...
@@ -255,13 +258,22 @@ iToBase62 n@(I# n#)
 
 Allocation of unique supply characters:
        v,t,u : for renumbering value-, type- and usage- vars.
-       other a-z: lower case chars for unique supplies (see Main.lhs)
        B:   builtin
        C-E: pseudo uniques     (used in native-code generator)
        X:   uniques derived by deriveUnique
        _:   unifiable tyvars   (above)
        0-9: prelude things below
 
+       other a-z: lower case chars for unique supplies.  Used so far:
+
+       d       desugarer
+       f       AbsC flattener
+       g       SimplStg
+       l       ndpFlatten
+       n       Native codegen
+       r       Hsc name cache
+       s       simplifier
+
 \begin{code}
 mkAlphaTyVarUnique i            = mkUnique '1' i
 
@@ -303,18 +315,13 @@ mkPArrDataConUnique a             = mkUnique ':' (2*a)
 initTyVarUnique :: Unique
 initTyVarUnique = mkUnique 't' 0
 
-initTidyUniques :: (Unique, Unique)    -- Global and local
-initTidyUniques = (mkUnique 'g' 0, mkUnique 'x' 0)
-
-mkPseudoUnique1, mkPseudoUnique2, mkPseudoUnique3, 
+mkPseudoUniqueC, mkPseudoUniqueD, mkPseudoUniqueE, mkPseudoUniqueH,
    mkBuiltinUnique :: Int -> Unique
 
-builtinUniques :: [Unique]
-builtinUniques = map mkBuiltinUnique [1..]
-
 mkBuiltinUnique i = mkUnique 'B' i
-mkPseudoUnique1 i = mkUnique 'C' i -- used for getUnique on Regs
-mkPseudoUnique2 i = mkUnique 'D' i -- used in NCG for getUnique on RealRegs
-mkPseudoUnique3 i = mkUnique 'E' i -- used in NCG spiller to create spill VirtualRegs
+mkPseudoUniqueC i = mkUnique 'C' i -- used for getUnique on Regs
+mkPseudoUniqueD i = mkUnique 'D' i -- used in NCG for getUnique on RealRegs
+mkPseudoUniqueE i = mkUnique 'E' i -- used in NCG spiller to create spill VirtualRegs
+mkPseudoUniqueH i = mkUnique 'H' i -- used in NCG spiller to create spill VirtualRegs
 \end{code}