X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectorise.hs;h=bb5aa0dc91a438732e5f8aa0558d192c3555340f;hb=e12e8c14196fc87d15b382ef4c0201418f83b815;hp=bbfa562f31396ccd5d19ecbf2db4d5d0e9217093;hpb=97b95db074dec279235866b910a46fc0c7d62fae;p=ghc-hetmet.git diff --git a/compiler/vectorise/Vectorise.hs b/compiler/vectorise/Vectorise.hs index bbfa562..bb5aa0d 100644 --- a/compiler/vectorise/Vectorise.hs +++ b/compiler/vectorise/Vectorise.hs @@ -25,11 +25,13 @@ import InstEnv ( extendInstEnvList ) import Var import VarEnv import VarSet -import Name ( mkSysTvName, getName ) +import Name ( Name, mkSysTvName, getName ) import NameEnv import Id import MkId ( unwrapFamInstScrut ) import OccName +import RdrName ( RdrName, mkRdrQual ) +import Module ( mkModuleNameFS ) import DsMonad hiding (mapAndUnzipM) import DsUtils ( mkCoreTup, mkCoreTupTy ) @@ -44,6 +46,12 @@ import Outputable import FastString import Control.Monad ( liftM, liftM2, zipWithM, mapAndUnzipM ) +mkNDPVar :: FastString -> RdrName +mkNDPVar fs = mkRdrQual nDP_BUILTIN (mkVarOccFS fs) + +builtin_PAs :: [(Name, RdrName)] +builtin_PAs = [(intTyConName, mkNDPVar FSLIT("dPA_Int"))] + vectorise :: HscEnv -> UniqSupply -> RuleBase -> ModGuts -> IO (SimplCount, ModGuts) vectorise hsc_env _ _ guts @@ -60,6 +68,7 @@ vectorise hsc_env _ _ guts vectModule :: ModGuts -> VM ModGuts vectModule guts = do + defTyConRdrPAs builtin_PAs (types', fam_insts, pa_insts) <- vectTypeEnv (mg_types guts) let insts = map painstInstance pa_insts