From: Roman Leshchinskiy Date: Tue, 17 Jul 2007 05:49:43 +0000 (+0000) Subject: Add vectorisation environment transformers X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=4a396303e52917745b804673cac27128dca351d5 Add vectorisation environment transformers --- diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index 7b201fa..157bea3 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -14,8 +14,9 @@ module VectMonad ( LocalEnv(..), readLEnv, setLEnv, updLEnv, - defGlobalVar, lookupVar, - lookupTyCon, + lookupVar, defGlobalVar, + lookupTyCon, defTyCon, + lookupDataCon, defDataCon, lookupTyVarPA, defLocalTyVar, defLocalTyVarWithPA, localTyVars, lookupInst, lookupFamInst @@ -296,6 +297,17 @@ lookupVar v lookupTyCon :: TyCon -> VM (Maybe TyCon) lookupTyCon tc = readGEnv $ \env -> lookupNameEnv (global_tycons env) (tyConName tc) +defTyCon :: TyCon -> TyCon -> VM () +defTyCon tc tc' = updGEnv $ \env -> + env { global_tycons = extendNameEnv (global_tycons env) (tyConName tc) tc' } + +lookupDataCon :: DataCon -> VM (Maybe DataCon) +lookupDataCon dc = readGEnv $ \env -> lookupNameEnv (global_datacons env) (dataConName dc) + +defDataCon :: DataCon -> DataCon -> VM () +defDataCon dc dc' = updGEnv $ \env -> + env { global_datacons = extendNameEnv (global_datacons env) (dataConName dc) dc' } + lookupTyVarPA :: Var -> VM (Maybe CoreExpr) lookupTyVarPA tv = readLEnv $ \env -> lookupVarEnv (local_tyvar_pa env) tv