From 4b6197ca39d49029b14ea08ceae7d947bc2845db Mon Sep 17 00:00:00 2001 From: Roman Leshchinskiy Date: Tue, 1 Jul 2008 02:14:36 +0000 Subject: [PATCH] Don't use DPH backend directly in vectoriser --- compiler/vectorise/VectBuiltIn.hs | 26 ++++++++++++-------------- compiler/vectorise/VectMonad.hs | 2 +- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/compiler/vectorise/VectBuiltIn.hs b/compiler/vectorise/VectBuiltIn.hs index dc56944..dc04e70 100644 --- a/compiler/vectorise/VectBuiltIn.hs +++ b/compiler/vectorise/VectBuiltIn.hs @@ -1,5 +1,5 @@ module VectBuiltIn ( - Builtins(..), sumTyCon, prodTyCon, uarrTy, intPrimArrayTy, + Builtins(..), sumTyCon, prodTyCon, combinePAVar, initBuiltins, initBuiltinVars, initBuiltinTyCons, initBuiltinDataCons, initBuiltinPAs, initBuiltinPRs, @@ -25,7 +25,7 @@ import Type ( Type, mkTyConApp ) import TysPrim import TysWiredIn ( unitTyCon, unitDataCon, tupleTyCon, tupleCon, - intTyCon, intTyConName, intTy, + intTyCon, intTyConName, doubleTyCon, doubleTyConName, boolTyCon, boolTyConName, trueDataCon, falseDataCon, parrTyConName ) @@ -51,8 +51,7 @@ mAX_NDP_COMBINE = 2 mkNDPModule :: FastString -> Module mkNDPModule m = mkModule ndpPackageId (mkModuleNameFS m) -nDP_UARR, - nDP_PARRAY, +nDP_PARRAY, nDP_REPR, nDP_CLOSURE, nDP_UNBOXED, @@ -64,7 +63,6 @@ nDP_UARR, nDP_PRELUDE_BOOL, nDP_PRELUDE_TUPLE :: Module -nDP_UARR = mkNDPModule (fsLit "Data.Array.Parallel.Unlifted.Flat.UArr") nDP_PARRAY = mkNDPModule (fsLit "Data.Array.Parallel.Lifted.PArray") nDP_REPR = mkNDPModule (fsLit "Data.Array.Parallel.Lifted.Repr") nDP_CLOSURE = mkNDPModule (fsLit "Data.Array.Parallel.Lifted.Closure") @@ -85,7 +83,7 @@ data Builtins = Builtins { , preprTyCon :: TyCon , prTyCon :: TyCon , prDataCon :: DataCon - , uarrTyCon :: TyCon + , intPrimArrayTy :: Type , voidTyCon :: TyCon , wrapTyCon :: TyCon , enumerationTyCon :: TyCon @@ -109,12 +107,6 @@ data Builtins = Builtins { , liftingContext :: Var } -uarrTy :: Type -> Builtins -> Type -uarrTy ty bi = mkTyConApp (uarrTyCon bi) [ty] - -intPrimArrayTy :: Builtins -> Type -intPrimArrayTy = uarrTy intTy - sumTyCon :: Int -> Builtins -> TyCon sumTyCon n bi | n >= 2 && n <= mAX_NDP_SUM = sumTyCons bi ! n @@ -140,7 +132,7 @@ initBuiltins preprTyCon <- externalTyCon nDP_PARRAY (fsLit "PRepr") prTyCon <- externalTyCon nDP_PARRAY (fsLit "PR") let [prDataCon] = tyConDataCons prTyCon - uarrTyCon <- externalTyCon nDP_UARR (fsLit "UArr") + intPrimArrayTy <- externalType nDP_UNBOXED (fsLit "PArray_Int#") closureTyCon <- externalTyCon nDP_CLOSURE (fsLit ":->") voidTyCon <- externalTyCon nDP_REPR (fsLit "Void") @@ -181,7 +173,7 @@ initBuiltins , preprTyCon = preprTyCon , prTyCon = prTyCon , prDataCon = prDataCon - , uarrTyCon = uarrTyCon + , intPrimArrayTy = intPrimArrayTy , voidTyCon = voidTyCon , wrapTyCon = wrapTyCon , enumerationTyCon = enumerationTyCon @@ -388,6 +380,12 @@ externalTyCon :: Module -> FastString -> DsM TyCon externalTyCon mod fs = dsLookupTyCon =<< lookupOrig mod (mkOccNameFS tcName fs) +externalType :: Module -> FastString -> DsM Type +externalType mod fs + = do + tycon <- externalTyCon mod fs + return $ mkTyConApp tycon [] + unitTyConName :: Name unitTyConName = tyConName unitTyCon diff --git a/compiler/vectorise/VectMonad.hs b/compiler/vectorise/VectMonad.hs index 4ae6c17..b8c9c06 100644 --- a/compiler/vectorise/VectMonad.hs +++ b/compiler/vectorise/VectMonad.hs @@ -7,7 +7,7 @@ module VectMonad ( cloneName, cloneId, cloneVar, newExportedVar, newLocalVar, newDummyVar, newTyVar, - Builtins(..), sumTyCon, prodTyCon, uarrTy, intPrimArrayTy, + Builtins(..), sumTyCon, prodTyCon, combinePAVar, builtin, builtins, -- 1.7.10.4