X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Futils%2FUniqFM.lhs;h=e38f4f54f5222eb104cad028f5c1f62776e20a17;hb=06e14415fa8aef5be7d01314d08fcd87873cd0da;hp=8512badecfa7de89247afd829ba69e7fbcb5c394;hpb=6eaccd1a5bd5fb73e76b7316bf8578fbd5f393ae;p=ghc-hetmet.git diff --git a/ghc/compiler/utils/UniqFM.lhs b/ghc/compiler/utils/UniqFM.lhs index 8512bad..e38f4f5 100644 --- a/ghc/compiler/utils/UniqFM.lhs +++ b/ghc/compiler/utils/UniqFM.lhs @@ -48,11 +48,12 @@ module UniqFM ( import {-# SOURCE #-} Name ( Name ) -import Unique ( Uniquable(..), Unique, u2i, mkUniqueGrimily ) +import Unique ( Uniquable(..), Unique, getKey, mkUniqueGrimily ) import Panic -import GlaExts -- Lots of Int# operations import FastTypes import Outputable + +import GLAEXTS -- Lots of Int# operations \end{code} %************************************************************************ @@ -152,7 +153,7 @@ ufmToList :: UniqFM elt -> [(Unique, elt)] , UniqFM elt -> Unique -> Maybe elt #-} -#endif {- __GLASGOW_HASKELL__ -} +#endif /* __GLASGOW_HASKELL__ */ #endif \end{code} @@ -219,8 +220,8 @@ First the ways of building a UniqFM. \begin{code} emptyUFM = EmptyUFM -unitUFM key elt = mkLeafUFM (u2i (getUnique key)) elt -unitDirectlyUFM key elt = mkLeafUFM (u2i key) elt +unitUFM key elt = mkLeafUFM (getKey (getUnique key)) elt +unitDirectlyUFM key elt = mkLeafUFM (getKey key) elt listToUFM key_elt_pairs = addListToUFM_C use_snd EmptyUFM key_elt_pairs @@ -239,20 +240,20 @@ could be optimised using it. \begin{code} addToUFM fm key elt = addToUFM_C use_snd fm key elt -addToUFM_Directly fm u elt = insert_ele use_snd fm (u2i u) elt +addToUFM_Directly fm u elt = insert_ele use_snd fm (getKey u) elt addToUFM_C combiner fm key elt - = insert_ele combiner fm (u2i (getUnique key)) elt + = insert_ele combiner fm (getKey (getUnique key)) elt addListToUFM fm key_elt_pairs = addListToUFM_C use_snd fm key_elt_pairs addListToUFM_Directly fm uniq_elt_pairs = addListToUFM_directly_C use_snd fm uniq_elt_pairs addListToUFM_C combiner fm key_elt_pairs - = foldl (\ fm (k, e) -> insert_ele combiner fm (u2i (getUnique k)) e) + = foldl (\ fm (k, e) -> insert_ele combiner fm (getKey (getUnique k)) e) fm key_elt_pairs addListToUFM_directly_C combiner fm uniq_elt_pairs - = foldl (\ fm (k, e) -> insert_ele combiner fm (u2i k) e) + = foldl (\ fm (k, e) -> insert_ele combiner fm (getKey k) e) fm uniq_elt_pairs \end{code} @@ -261,8 +262,8 @@ Now ways of removing things from UniqFM. \begin{code} delListFromUFM fm lst = foldl delFromUFM fm lst -delFromUFM fm key = delete fm (u2i (getUnique key)) -delFromUFM_Directly fm u = delete fm (u2i u) +delFromUFM fm key = delete fm (getKey (getUnique key)) +delFromUFM_Directly fm u = delete fm (getKey u) delete EmptyUFM _ = EmptyUFM delete fm key = del_ele fm @@ -540,20 +541,20 @@ looking up in a hurry is the {\em whole point} of this binary tree lark. Lookup up a binary tree is easy (and fast). \begin{code} -elemUFM key fm = case lookUp fm (u2i (getUnique key)) of +elemUFM key fm = case lookUp fm (getKey (getUnique key)) of Nothing -> False Just _ -> True -lookupUFM fm key = lookUp fm (u2i (getUnique key)) -lookupUFM_Directly fm key = lookUp fm (u2i key) +lookupUFM fm key = lookUp fm (getKey (getUnique key)) +lookupUFM_Directly fm key = lookUp fm (getKey key) lookupWithDefaultUFM fm deflt key - = case lookUp fm (u2i (getUnique key)) of + = case lookUp fm (getKey (getUnique key)) of Nothing -> deflt Just elt -> elt lookupWithDefaultUFM_Directly fm deflt key - = case lookUp fm (u2i key) of + = case lookUp fm (getKey key) of Nothing -> deflt Just elt -> elt @@ -813,11 +814,11 @@ shiftR_ n p = word2Int#((int2Word# n) `shiftr` p) shiftr x y = shiftRL# x y #endif -#else {- not GHC -} +#else /* not GHC */ shiftL_ n p = n * (2 ^ p) shiftR_ n p = n `quot` (2 ^ p) -#endif {- not GHC -} +#endif /* not GHC */ \end{code} \begin{code}