summaryrefslogtreecommitdiff
path: root/compiler/vectorise/VectMonad.hs
diff options
context:
space:
mode:
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>2007-08-07 02:27:18 +0000
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>2007-08-07 02:27:18 +0000
commit2ad8a88ff1a6a70469a44f60deee82fe16b0be27 (patch)
treeebe6dc753c72767c7821d69a6ce9fda87e74523b /compiler/vectorise/VectMonad.hs
parent17f2929d489cb59ce009377e7379ca230d3411b0 (diff)
downloadhaskell-2ad8a88ff1a6a70469a44f60deee82fe16b0be27.tar.gz
Add RdrEnv to vectorisation state
Diffstat (limited to 'compiler/vectorise/VectMonad.hs')
-rw-r--r--compiler/vectorise/VectMonad.hs17
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)