From: Roman Leshchinskiy Date: Tue, 10 Jul 2007 04:23:19 +0000 (+0000) Subject: Utility functions for vectorisation X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=d9e8e6f9538b095e933ce2280073548b179b6765;p=ghc-hetmet.git Utility functions for vectorisation --- diff --git a/compiler/vectorise/Vectorise.hs b/compiler/vectorise/Vectorise.hs index 607a44c..71514e1 100644 --- a/compiler/vectorise/Vectorise.hs +++ b/compiler/vectorise/Vectorise.hs @@ -209,6 +209,12 @@ setLEnv lenv = VM $ \_ genv _ -> return (Yes genv lenv ()) updLEnv :: (LocalEnv -> LocalEnv) -> VM () updLEnv f = VM $ \_ genv lenv -> return (Yes genv (f lenv) ()) +newLocalVar :: FastString -> Type -> VM Var +newLocalVar fs ty + = do + u <- liftDs newUnique + return $ mkSysLocal fs u ty + newTyVar :: FastString -> Kind -> VM Var newTyVar fs k = do @@ -218,6 +224,10 @@ newTyVar fs k lookupTyCon :: TyCon -> VM (Maybe TyCon) lookupTyCon tc = readGEnv $ \env -> lookupNameEnv (global_tycons env) (tyConName tc) + +extendTyVarPA :: Var -> CoreExpr -> VM () +extendTyVarPA tv pa = updLEnv $ \env -> env { local_tyvar_pa = extendVarEnv (local_tyvar_pa env) tv pa } + -- ---------------------------------------------------------------------------- -- Bindings