X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FsimplStg%2FUpdAnal.lhs;h=ecd8ed170797af56723b45babf36dda9b8720b85;hb=ccd4105eb4a3d8bca062bacc3664086b4e940704;hp=e0f4adf6b32f2af5ac9fbfdb60c15905b3ef6ea4;hpb=5cf27e8f1731c52fe63a5b9615f927484164c61b;p=ghc-hetmet.git diff --git a/ghc/compiler/simplStg/UpdAnal.lhs b/ghc/compiler/simplStg/UpdAnal.lhs index e0f4adf..ecd8ed1 100644 --- a/ghc/compiler/simplStg/UpdAnal.lhs +++ b/ghc/compiler/simplStg/UpdAnal.lhs @@ -12,27 +12,23 @@ > module UpdAnal ( updateAnalyse ) where > -> import Ubiq{-uitous-} +> IMP_Ubiq(){-uitous-} > > import StgSyn +> import Id ( SYN_IE(IdEnv), growIdEnv, addOneToIdEnv, combineIdEnvs, nullIdEnv, +> unitIdEnv, mkIdEnv, rngIdEnv, lookupIdEnv, +> SYN_IE(IdSet), +> getIdUpdateInfo, addIdUpdateInfo, mkSysLocal, idType, isImportedId, +> externallyVisibleId, +> SYN_IE(Id), GenId +> ) +> import IdInfo ( UpdateInfo, SYN_IE(UpdateSpec), mkUpdateInfo, updateInfoMaybe ) +> import Type ( splitFunTy, splitSigmaTy ) +> import UniqSet +> import Unique ( getBuiltinUniques ) +> import SrcLoc ( noSrcLoc ) > import Util ( panic ) > -> updateAnalyse :: [StgBinding] -> [StgBinding] {- Exported -} -> updateAnalyse = panic "UpdAnal.updateAnalyse" -> -> {- LATER: to end of file: -> --import Type ( splitFunTy, splitSigmaTy, Class, TyVarTemplate, -> -- TauType(..) -> -- ) -> --import Id -> --import IdInfo -> --import Outputable ( isExported ) -> --import Pretty -> --import SrcLoc ( mkUnknownSrcLoc ) -> --import StgSyn -> --import UniqSet -> --import Unique ( getBuiltinUniques ) -> --import Util %----------------------------------------------------------------------------- \subsection{Reverse application} @@ -480,7 +476,7 @@ Convert a Closure into a representation that can be placed in a .hi file. > where > (c,b,_) = foldl doApp f ids > ids = map mkid (getBuiltinUniques arity) -> mkid u = mkSysLocal SLIT("upd") u noType mkUnknownSrcLoc +> mkid u = mkSysLocal SLIT("upd") u noType noSrcLoc > countUses u = if u `elemRefs` b then 2 else min (lookupc c u) 2 > noType = panic "UpdAnal: no type!" > @@ -507,11 +503,10 @@ suffice for now. > StgRec bs -> StgRec [ (attachOne v, rhs) | (v, rhs) <- bs ] > > where attachOne v -> | isExported v +> | externallyVisibleId v > = let c = lookup v p in > addIdUpdateInfo v > (mkUpdateInfo (mkUpdateSpec v c)) > | otherwise = v -> -} %-----------------------------------------------------------------------------