X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectMonad.hs;h=57f87d3db7f6a2fe9220260c1ed06018974abc6e;hb=36fa8c4890e439fe8c2a4682df2a877fa2cc606b;hp=5c12bee40cd08557499128a6286bc07a07c68f95;hpb=89cf21d79ef8101e424626ad9023fd97e33af43e;p=ghc-hetmet.git diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index 5c12bee..57f87d3 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -14,7 +14,8 @@ module VectMonad ( cloneName, cloneId, cloneVar, newExportedVar, newLocalVar, newDummyVar, newTyVar, - Builtins(..), sumTyCon, prodTyCon, combinePAVar, + Builtins(..), sumTyCon, prodTyCon, uarrTy, intPrimArrayTy, + combinePAVar, builtin, builtins, GlobalEnv(..), @@ -57,7 +58,7 @@ import NameEnv import TysPrim ( intPrimTy ) import Module import IfaceEnv -import IOEnv ( ioToIOEnv ) +import IOEnv ( liftIO ) import DsMonad import PrelNames @@ -376,7 +377,9 @@ 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) +lookupDataCon dc + | isTupleTyCon (dataConTyCon dc) = return (Just dc) + | otherwise = readGEnv $ \env -> lookupNameEnv (global_datacons env) (dataConName dc) defDataCon :: DataCon -> DataCon -> VM () defDataCon dc dc' = updGEnv $ \env -> @@ -500,7 +503,7 @@ initV hsc_env guts info p builtin_prs <- initBuiltinPRs builtins builtin_boxed <- initBuiltinBoxedTyCons builtins - eps <- ioToIOEnv $ hscEPS hsc_env + eps <- liftIO $ hscEPS hsc_env let famInstEnvs = (eps_fam_inst_env eps, mg_fam_inst_env guts) instEnvs = (eps_inst_env eps, mg_inst_env guts)