From b2153822467a86d4da0ccdbd4274741aaa90d81b Mon Sep 17 00:00:00 2001 From: Ben Lippmeier Date: Thu, 5 May 2011 14:32:00 +1000 Subject: [PATCH] Update vectoriser now that Scalar has moved --- .../vectorise/Vectorise/Builtins/Initialise.hs | 28 +++++++++++++------- compiler/vectorise/Vectorise/Builtins/Modules.hs | 6 +++-- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/compiler/vectorise/Vectorise/Builtins/Initialise.hs b/compiler/vectorise/Vectorise/Builtins/Initialise.hs index 5f4735c..64172c6 100644 --- a/compiler/vectorise/Vectorise/Builtins/Initialise.hs +++ b/compiler/vectorise/Vectorise/Builtins/Initialise.hs @@ -43,14 +43,22 @@ initBuiltins pkg -- From dph-common:Data.Array.Parallel.PArray.PData -- PData is a type family that maps an element type onto the type -- we use to hold an array of those elements. - pdataTyCon <- externalTyCon dph_PData (fsLit "PData") + pdataTyCon <- externalTyCon dph_PArray_PData (fsLit "PData") -- PR is a type class that holds the primitive operators we can -- apply to array data. Its functions take arrays in terms of PData types. - prClass <- externalClass dph_PData (fsLit "PR") + prClass <- externalClass dph_PArray_PData (fsLit "PR") let prTyCon = classTyCon prClass [prDataCon] = tyConDataCons prTyCon + + -- From dph-common:Data.Array.Parallel.PArray.Scalar + -- Scalar is the class of scalar values. + -- The dictionary contains functions to coerce U.Arrays of scalars + -- to and from the PData representation. + scalarClass <- externalClass dph_PArray_Scalar (fsLit "Scalar") + + -- From dph-common:Data.Array.Parallel.Lifted.PArray -- A PArray (Parallel Array) holds the array length and some array elements -- represented by the PData type family. @@ -114,7 +122,6 @@ initBuiltins pkg | i <- [2..mAX_DPH_COMBINE]] let combinePDVars = listArray (2, mAX_DPH_COMBINE) combines - scalarClass <- externalClass dph_PArray (fsLit "Scalar") scalar_map <- externalVar dph_Scalar (fsLit "scalar_map") scalar_zip2 <- externalVar dph_Scalar (fsLit "scalar_zipWith") scalar_zips <- mapM (externalVar dph_Scalar) @@ -175,12 +182,13 @@ initBuiltins pkg -- These are the modules from the DPH base library that contain -- the primitive array types and functions that vectorised code uses. mods@(Modules - { dph_PArray = dph_PArray - , dph_PData = dph_PData - , dph_Repr = dph_Repr - , dph_Closure = dph_Closure - , dph_Scalar = dph_Scalar - , dph_Unboxed = dph_Unboxed + { dph_PArray = dph_PArray + , dph_PArray_PData = dph_PArray_PData + , dph_PArray_Scalar = dph_PArray_Scalar + , dph_Repr = dph_Repr + , dph_Closure = dph_Closure + , dph_Scalar = dph_Scalar + , dph_Unboxed = dph_Unboxed }) = dph_Modules pkg @@ -267,7 +275,7 @@ initBuiltinPAs (Builtins { dphModules = mods }) insts -- | Get the names of all builtin instance functions for the PR class. initBuiltinPRs :: Builtins -> (InstEnv, InstEnv) -> DsM [(Name, Var)] initBuiltinPRs (Builtins { dphModules = mods }) insts - = liftM (initBuiltinDicts insts) (externalClass (dph_PData mods) (fsLit "PR")) + = liftM (initBuiltinDicts insts) (externalClass (dph_PArray_PData mods) (fsLit "PR")) -- | Get the names of all DPH instance functions for this class. diff --git a/compiler/vectorise/Vectorise/Builtins/Modules.hs b/compiler/vectorise/Vectorise/Builtins/Modules.hs index 275f271..82e49bf 100644 --- a/compiler/vectorise/Vectorise/Builtins/Modules.hs +++ b/compiler/vectorise/Vectorise/Builtins/Modules.hs @@ -18,7 +18,8 @@ data Modules , dph_Instances :: Module , dph_Combinators :: Module , dph_Scalar :: Module - , dph_PData :: Module + , dph_PArray_PData :: Module + , dph_PArray_Scalar :: Module , dph_Prelude_PArr :: Module , dph_Prelude_Int :: Module , dph_Prelude_Word8 :: Module @@ -40,7 +41,8 @@ dph_Modules pkg , dph_Combinators = mk (fsLit "Data.Array.Parallel.Lifted.Combinators") , dph_Scalar = mk (fsLit "Data.Array.Parallel.Lifted.Scalar") - , dph_PData = mk (fsLit "Data.Array.Parallel.PArray.PData") + , dph_PArray_PData = mk (fsLit "Data.Array.Parallel.PArray.PData") + , dph_PArray_Scalar = mk (fsLit "Data.Array.Parallel.PArray.Scalar") , dph_Prelude_PArr = mk (fsLit "Data.Array.Parallel.Prelude.Base.PArr") , dph_Prelude_Int = mk (fsLit "Data.Array.Parallel.Prelude.Base.Int") -- 1.7.10.4