X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fvectorise%2FVectBuiltIn.hs;h=beae49a40200ad5e60c15c1a50e66146a9158a84;hb=1c2f1ceb04aa84f0e014ec6750d8a08355200145;hp=f5c27ef554725cae1940a433ebdbed0d3d380ad8;hpb=5e9f04ebeaf49c3afe836b64d72508762ad19c1a;p=ghc-hetmet.git diff --git a/compiler/vectorise/VectBuiltIn.hs b/compiler/vectorise/VectBuiltIn.hs index f5c27ef..beae49a 100644 --- a/compiler/vectorise/VectBuiltIn.hs +++ b/compiler/vectorise/VectBuiltIn.hs @@ -33,6 +33,7 @@ import Type ( Type ) import TysPrim import TysWiredIn ( unitTyCon, tupleTyCon, intTyCon, intTyConName, + doubleTyCon, doubleTyConName, boolTyCon, boolTyConName, trueDataCon, falseDataCon, parrTyCon, parrTyConName ) import PrelNames ( gHC_PARR ) @@ -65,8 +66,8 @@ nDP_PRIM = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Prim") nDP_INSTANCES = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Instances") nDP_COMBINATORS = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Combinators") -nDP_PRELUDE_PARR = gHC_PARR -- mkNDPModule FSLIT("Data.Array.Parallel.Prelude.PArr") -nDP_PRELUDE_INT = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Int") +nDP_PRELUDE_PARR = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.PArr") +nDP_PRELUDE_INT = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Int") data Builtins = Builtins { parrayTyCon :: TyCon @@ -208,12 +209,15 @@ defaultDataConWorkers = [trueDataCon, falseDataCon] preludeVars :: [(Module, FastString, Module, FastString)] preludeVars = [ - mk nDP_PRELUDE_PARR FSLIT("mapP") nDP_COMBINATORS FSLIT("mapPA") - , mk nDP_PRELUDE_PARR FSLIT("zipWithP") nDP_COMBINATORS FSLIT("zipWithPA") + mk gHC_PARR FSLIT("mapP") nDP_COMBINATORS FSLIT("mapPA") + , mk gHC_PARR FSLIT("zipWithP") nDP_COMBINATORS FSLIT("zipWithPA") , mk nDP_PRELUDE_INT FSLIT("plus") nDP_PRELUDE_INT FSLIT("plusV") , mk nDP_PRELUDE_INT FSLIT("minus") nDP_PRELUDE_INT FSLIT("minusV") , mk nDP_PRELUDE_INT FSLIT("sumP") nDP_PRELUDE_INT FSLIT("sumPA") , mk nDP_PRELUDE_INT FSLIT("upToP") nDP_PRELUDE_INT FSLIT("upToPA") + + -- FIXME: temporary + , mk nDP_PRELUDE_PARR FSLIT("fromPArrayP") nDP_PRELUDE_PARR FSLIT("fromPArrayPA") ] where mk = (,,,) @@ -224,10 +228,14 @@ initBuiltinTyCons bi -- parr <- externalTyCon nDP_PRELUDE_PARR FSLIT("PArr") return $ (tyConName funTyCon, closureTyCon bi) : (parrTyConName, parrayTyCon bi) + + -- FIXME: temporary + : (tyConName $ parrayTyCon bi, parrayTyCon bi) + : [(tyConName tc, tc) | tc <- defaultTyCons] defaultTyCons :: [TyCon] -defaultTyCons = [intTyCon, boolTyCon] +defaultTyCons = [intTyCon, boolTyCon, doubleTyCon] initBuiltinDataCons :: Builtins -> [(Name, DataCon)] initBuiltinDataCons bi = [(dataConName dc, dc)| dc <- defaultDataCons] @@ -254,6 +262,7 @@ builtinPAs bi , mk unitTyConName nDP_INSTANCES FSLIT("dPA_Unit") , mk intTyConName nDP_INSTANCES FSLIT("dPA_Int") + , mk doubleTyConName nDP_INSTANCES FSLIT("dPA_Double") , mk boolTyConName nDP_INSTANCES FSLIT("dPA_Bool") ] ++ tups @@ -278,6 +287,7 @@ builtinPRs bi = -- temporary , mk intTyConName nDP_INSTANCES FSLIT("dPR_Int") + , mk doubleTyConName nDP_INSTANCES FSLIT("dPR_Double") ] ++ map mk_sum [2..mAX_NDP_SUM]