summaryrefslogtreecommitdiff
path: root/compiler/vectorise/VectMonad.hs
diff options
context:
space:
mode:
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>2007-08-23 01:34:58 +0000
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>2007-08-23 01:34:58 +0000
commit55357088ddc788000b29e6bc8697fe09471bf195 (patch)
treec2fb8943c04c807d181742d4eaef43378dc4d17e /compiler/vectorise/VectMonad.hs
parent21d9b432b676af304dff8d7f4e1e31e1678bcae3 (diff)
downloadhaskell-55357088ddc788000b29e6bc8697fe09471bf195.tar.gz
Read the package state after pulling in all built-ins during vectorisation
Diffstat (limited to 'compiler/vectorise/VectMonad.hs')
-rw-r--r--compiler/vectorise/VectMonad.hs15
1 files changed, 8 insertions, 7 deletions
diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs
index 6cb1679403..0a14b6cca0 100644
--- a/compiler/vectorise/VectMonad.hs
+++ b/compiler/vectorise/VectMonad.hs
@@ -47,6 +47,7 @@ import NameEnv
import TysPrim ( intPrimTy )
import Module
import IfaceEnv
+import IOEnv ( ioToIOEnv )
import DsMonad
import PrelNames
@@ -429,23 +430,23 @@ lookupFamInst tycon tys
initV :: HscEnv -> ModGuts -> VectInfo -> VM a -> IO (Maybe (VectInfo, a))
initV hsc_env guts info p
= do
- eps <- hscEPS hsc_env
- let famInstEnvs = (eps_fam_inst_env eps, mg_fam_inst_env guts)
- let instEnvs = (eps_inst_env eps, mg_inst_env guts)
-
Just r <- initDs hsc_env (mg_module guts)
(mg_rdr_env guts)
(mg_types guts)
- (go instEnvs famInstEnvs)
+ go
return r
where
- go instEnvs famInstEnvs =
+ go =
do
- builtins <- initBuiltins
+ builtins <- initBuiltins
builtin_tycons <- initBuiltinTyCons
builtin_pas <- initBuiltinPAs
+ eps <- ioToIOEnv $ hscEPS hsc_env
+ let famInstEnvs = (eps_fam_inst_env eps, mg_fam_inst_env guts)
+ instEnvs = (eps_inst_env eps, mg_inst_env guts)
+
let genv = extendTyConsEnv builtin_tycons
. extendPAFunsEnv builtin_pas
$ initGlobalEnv info instEnvs famInstEnvs