From: Roman Leshchinskiy Date: Mon, 16 Jul 2007 04:48:26 +0000 (+0000) Subject: Add support for name cloning to vectorisation monad X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=9685c1294124d7d960b23f6f5d38037d52ac0db9 Add support for name cloning to vectorisation monad --- diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index 797342b..041928d 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -31,6 +31,7 @@ import Type import Var import VarEnv import Id +import OccName import Name import NameEnv @@ -240,6 +241,16 @@ getInstEnv = readGEnv global_inst_env getFamInstEnv :: VM FamInstEnvs getFamInstEnv = readGEnv global_fam_inst_env +cloneName :: (OccName -> OccName) -> Name -> VM Name +cloneName mk_occ name = liftM make (liftDs newUnique) + where + occ_name = mk_occ (nameOccName name) + + make u | isExternalName name = mkExternalName u (nameModule name) + occ_name + (nameSrcSpan name) + | otherwise = mkSystemName u occ_name + newLocalVar :: FastString -> Type -> VM Var newLocalVar fs ty = do