projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Teach vectorisation about Double
[ghc-hetmet.git]
/
compiler
/
vectorise
/
VectBuiltIn.hs
diff --git
a/compiler/vectorise/VectBuiltIn.hs
b/compiler/vectorise/VectBuiltIn.hs
index
5741ddc
..
beae49a
100644
(file)
--- a/
compiler/vectorise/VectBuiltIn.hs
+++ b/
compiler/vectorise/VectBuiltIn.hs
@@
-33,7
+33,10
@@
import Type ( Type )
import TysPrim
import TysWiredIn ( unitTyCon, tupleTyCon,
intTyCon, intTyConName,
import TysPrim
import TysWiredIn ( unitTyCon, tupleTyCon,
intTyCon, intTyConName,
- boolTyCon, boolTyConName, trueDataCon, falseDataCon )
+ doubleTyCon, doubleTyConName,
+ boolTyCon, boolTyConName, trueDataCon, falseDataCon,
+ parrTyCon, parrTyConName )
+import PrelNames ( gHC_PARR )
import Module
import BasicTypes ( Boxity(..) )
import Module
import BasicTypes ( Boxity(..) )
@@
-63,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_INSTANCES = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Instances")
nDP_COMBINATORS = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Combinators")
-nDP_PRELUDE_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
data Builtins = Builtins {
parrayTyCon :: TyCon
@@
-206,12
+209,15
@@
defaultDataConWorkers = [trueDataCon, falseDataCon]
preludeVars :: [(Module, FastString, Module, FastString)]
preludeVars
= [
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")
, 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 = (,,,)
]
where
mk = (,,,)
@@
-219,13
+225,17
@@
preludeVars
initBuiltinTyCons :: Builtins -> DsM [(Name, TyCon)]
initBuiltinTyCons bi
= do
initBuiltinTyCons :: Builtins -> DsM [(Name, TyCon)]
initBuiltinTyCons bi
= do
- parr <- externalTyCon nDP_PRELUDE_PARR FSLIT("PArr")
+ -- parr <- externalTyCon nDP_PRELUDE_PARR FSLIT("PArr")
return $ (tyConName funTyCon, closureTyCon bi)
return $ (tyConName funTyCon, closureTyCon bi)
- : (tyConName parr, parrayTyCon bi)
+ : (parrTyConName, parrayTyCon bi)
+
+ -- FIXME: temporary
+ : (tyConName $ parrayTyCon bi, parrayTyCon bi)
+
: [(tyConName tc, tc) | tc <- defaultTyCons]
defaultTyCons :: [TyCon]
: [(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]
initBuiltinDataCons :: Builtins -> [(Name, DataCon)]
initBuiltinDataCons bi = [(dataConName dc, dc)| dc <- defaultDataCons]
@@
-252,6
+262,7
@@
builtinPAs bi
, mk unitTyConName nDP_INSTANCES FSLIT("dPA_Unit")
, mk intTyConName nDP_INSTANCES FSLIT("dPA_Int")
, 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
, mk boolTyConName nDP_INSTANCES FSLIT("dPA_Bool")
]
++ tups
@@
-276,6
+287,7
@@
builtinPRs bi =
-- temporary
, mk intTyConName nDP_INSTANCES FSLIT("dPR_Int")
-- temporary
, mk intTyConName nDP_INSTANCES FSLIT("dPR_Int")
+ , mk doubleTyConName nDP_INSTANCES FSLIT("dPR_Double")
]
++ map mk_sum [2..mAX_NDP_SUM]
]
++ map mk_sum [2..mAX_NDP_SUM]