diff options
author | Roman Leshchinskiy <rl@cse.unsw.edu.au> | 2007-08-07 02:27:18 +0000 |
---|---|---|
committer | Roman Leshchinskiy <rl@cse.unsw.edu.au> | 2007-08-07 02:27:18 +0000 |
commit | 2ad8a88ff1a6a70469a44f60deee82fe16b0be27 (patch) | |
tree | ebe6dc753c72767c7821d69a6ce9fda87e74523b /compiler/vectorise/VectMonad.hs | |
parent | 17f2929d489cb59ce009377e7379ca230d3411b0 (diff) | |
download | haskell-2ad8a88ff1a6a70469a44f60deee82fe16b0be27.tar.gz |
Add RdrEnv to vectorisation state
Diffstat (limited to 'compiler/vectorise/VectMonad.hs')
-rw-r--r-- | compiler/vectorise/VectMonad.hs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index 571350dc3e..56efb2b187 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -42,6 +42,7 @@ import OccName import Name import NameEnv import TysPrim ( intPrimTy ) +import RdrName import DsMonad import PrelNames @@ -148,6 +149,10 @@ data GlobalEnv = GlobalEnv { -- Hoisted bindings , global_bindings :: [(Var, CoreExpr)] + + -- Global Rdr environment (from ModGuts) + -- + , global_rdr_env :: GlobalRdrEnv } data LocalEnv = LocalEnv { @@ -168,8 +173,9 @@ data LocalEnv = LocalEnv { } -initGlobalEnv :: VectInfo -> (InstEnv, InstEnv) -> FamInstEnvs -> Builtins -> GlobalEnv -initGlobalEnv info instEnvs famInstEnvs bi +initGlobalEnv :: VectInfo -> (InstEnv, InstEnv) -> FamInstEnvs -> Builtins -> GlobalRdrEnv + -> GlobalEnv +initGlobalEnv info instEnvs famInstEnvs bi rdr_env = GlobalEnv { global_vars = mapVarEnv snd $ vectInfoVar info , global_exported_vars = emptyVarEnv @@ -181,6 +187,7 @@ initGlobalEnv info instEnvs famInstEnvs bi , global_inst_env = instEnvs , global_fam_inst_env = famInstEnvs , global_bindings = [] + , global_rdr_env = rdr_env } setInstEnvs :: InstEnv -> FamInstEnv -> GlobalEnv -> GlobalEnv @@ -479,7 +486,11 @@ initV hsc_env guts info p go instEnvs famInstEnvs = do builtins <- initBuiltins - r <- runVM p builtins (initGlobalEnv info instEnvs famInstEnvs builtins) + r <- runVM p builtins (initGlobalEnv info + instEnvs + famInstEnvs + builtins + (mg_rdr_env guts)) emptyLocalEnv case r of Yes genv _ x -> return $ Just (new_info genv, x) |