projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9aaa2bc
)
Vectorise tuple constructorsn
author
Roman Leshchinskiy
<rl@cse.unsw.edu.au>
Mon, 17 Mar 2008 03:34:36 +0000
(
03:34
+0000)
committer
Roman Leshchinskiy
<rl@cse.unsw.edu.au>
Mon, 17 Mar 2008 03:34:36 +0000
(
03:34
+0000)
compiler/vectorise/VectBuiltIn.hs
patch
|
blob
|
history
diff --git
a/compiler/vectorise/VectBuiltIn.hs
b/compiler/vectorise/VectBuiltIn.hs
index
0ad2bf7
..
c61343b
100644
(file)
--- a/
compiler/vectorise/VectBuiltIn.hs
+++ b/
compiler/vectorise/VectBuiltIn.hs
@@
-26,7
+26,7
@@
import TypeRep ( funTyCon )
import Type ( Type, mkTyConApp )
import TysPrim
import TysWiredIn ( unitTyCon, unitDataCon,
import Type ( Type, mkTyConApp )
import TysPrim
import TysWiredIn ( unitTyCon, unitDataCon,
- tupleTyCon,
+ tupleTyCon, tupleCon,
intTyCon, intTyConName, intTy,
doubleTyCon, doubleTyConName,
boolTyCon, boolTyConName, trueDataCon, falseDataCon,
intTyCon, intTyConName, intTy,
doubleTyCon, doubleTyConName,
boolTyCon, boolTyConName, trueDataCon, falseDataCon,
@@
-53,8
+53,17
@@
mAX_NDP_COMBINE = 2
mkNDPModule :: FastString -> Module
mkNDPModule m = mkModule ndpPackageId (mkModuleNameFS m)
mkNDPModule :: FastString -> Module
mkNDPModule m = mkModule ndpPackageId (mkModuleNameFS m)
-nDP_UARR, nDP_PARRAY, nDP_REPR, nDP_CLOSURE, nDP_UNBOXED, nDP_INSTANCES, nDP_COMBINATORS,
- nDP_PRELUDE_PARR, nDP_PRELUDE_INT, nDP_PRELUDE_DOUBLE :: Module
+nDP_UARR,
+ nDP_PARRAY,
+ nDP_REPR,
+ nDP_CLOSURE,
+ nDP_UNBOXED,
+ nDP_INSTANCES,
+ nDP_COMBINATORS,
+ nDP_PRELUDE_PARR,
+ nDP_PRELUDE_INT,
+ nDP_PRELUDE_DOUBLE,
+ nDP_PRELUDE_TUPLE :: Module
nDP_UARR = mkNDPModule FSLIT("Data.Array.Parallel.Unlifted.Flat.UArr")
nDP_PARRAY = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.PArray")
nDP_UARR = mkNDPModule FSLIT("Data.Array.Parallel.Unlifted.Flat.UArr")
nDP_PARRAY = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.PArray")
@@
-67,6
+76,7
@@
nDP_COMBINATORS = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Combinators")
nDP_PRELUDE_PARR = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.PArr")
nDP_PRELUDE_INT = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Int")
nDP_PRELUDE_DOUBLE = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Double")
nDP_PRELUDE_PARR = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.PArr")
nDP_PRELUDE_INT = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Int")
nDP_PRELUDE_DOUBLE = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Double")
+nDP_PRELUDE_TUPLE = mkNDPModule FSLIT("Data.Array.Parallel.Prelude.Base.Tuple")
data Builtins = Builtins {
parrayTyCon :: TyCon
data Builtins = Builtins {
parrayTyCon :: TyCon
@@
-200,14
+210,24
@@
initBuiltinVars _
= do
uvars <- zipWithM externalVar umods ufs
vvars <- zipWithM externalVar vmods vfs
= do
uvars <- zipWithM externalVar umods ufs
vvars <- zipWithM externalVar vmods vfs
+ cvars <- zipWithM externalVar cmods cfs
return $ [(v,v) | v <- map dataConWorkId defaultDataConWorkers]
return $ [(v,v) | v <- map dataConWorkId defaultDataConWorkers]
+ ++ zip (map dataConWorkId cons) cvars
++ zip uvars vvars
where
(umods, ufs, vmods, vfs) = unzip4 preludeVars
++ zip uvars vvars
where
(umods, ufs, vmods, vfs) = unzip4 preludeVars
+ (cons, cmods, cfs) = unzip3 preludeDataCons
+
defaultDataConWorkers :: [DataCon]
defaultDataConWorkers = [trueDataCon, falseDataCon, unitDataCon]
defaultDataConWorkers :: [DataCon]
defaultDataConWorkers = [trueDataCon, falseDataCon, unitDataCon]
+preludeDataCons :: [(DataCon, Module, FastString)]
+preludeDataCons
+ = [mk_tup n nDP_PRELUDE_TUPLE (mkFastString $ "tup" ++ show n) | n <- [2..3]]
+ where
+ mk_tup n mod name = (tupleCon Boxed n, mod, name)
+
preludeVars :: [(Module, FastString, Module, FastString)]
preludeVars
= [
preludeVars :: [(Module, FastString, Module, FastString)]
preludeVars
= [