Merge branch 'master' of http://darcs.haskell.org/ghc into ghc-generics
[ghc-hetmet.git] / compiler / vectorise / Vectorise / Builtins / Modules.hs
1
2 -- | Modules that contain builtin functions used by the vectoriser.
3 module Vectorise.Builtins.Modules
4         ( Modules(..)
5         , dph_Modules
6         , dph_Orphans)
7 where
8 import Module
9 import FastString
10         
11 -- | Ids of the modules that contain our DPH builtins.
12 data Modules 
13   = Modules 
14   { dph_PArray_Base             :: Module
15   , dph_PArray_Scalar           :: Module
16   , dph_PArray_ScalarInstances  :: Module
17   , dph_PArray_PRepr            :: Module
18   , dph_PArray_PReprInstances   :: Module
19   , dph_PArray_PData            :: Module
20   , dph_PArray_PDataInstances   :: Module
21   , dph_PArray_Types            :: Module
22         
23   , dph_Closure                 :: Module
24   , dph_Unboxed                 :: Module
25   , dph_Combinators             :: Module
26   , dph_Scalar                  :: Module
27
28   , dph_Prelude_Int             :: Module
29   , dph_Prelude_Word8           :: Module
30   , dph_Prelude_Double          :: Module
31   , dph_Prelude_Bool            :: Module
32   , dph_Prelude_Tuple           :: Module
33   }
34
35
36 -- | The locations of builtins in the current DPH library.
37 dph_Modules :: PackageId -> Modules
38 dph_Modules pkg 
39   = Modules 
40   { dph_PArray_Base             = mk (fsLit "Data.Array.Parallel.PArray.Base")
41   , dph_PArray_Scalar           = mk (fsLit "Data.Array.Parallel.PArray.Scalar")
42   , dph_PArray_ScalarInstances  = mk (fsLit "Data.Array.Parallel.PArray.ScalarInstances")
43   , dph_PArray_PRepr            = mk (fsLit "Data.Array.Parallel.PArray.PRepr")
44   , dph_PArray_PReprInstances   = mk (fsLit "Data.Array.Parallel.PArray.PReprInstances")
45   , dph_PArray_PData            = mk (fsLit "Data.Array.Parallel.PArray.PData")
46   , dph_PArray_PDataInstances   = mk (fsLit "Data.Array.Parallel.PArray.PDataInstances")
47   , dph_PArray_Types            = mk (fsLit "Data.Array.Parallel.PArray.Types")
48         
49   , dph_Closure                 = mk (fsLit "Data.Array.Parallel.Lifted.Closure")
50   , dph_Unboxed                 = mk (fsLit "Data.Array.Parallel.Lifted.Unboxed")
51   , dph_Combinators             = mk (fsLit "Data.Array.Parallel.Lifted.Combinators")
52   , dph_Scalar                  = mk (fsLit "Data.Array.Parallel.Lifted.Scalar")
53
54   , dph_Prelude_Int             = mk (fsLit "Data.Array.Parallel.Prelude.Base.Int")
55   , dph_Prelude_Word8           = mk (fsLit "Data.Array.Parallel.Prelude.Base.Word8")
56   , dph_Prelude_Double          = mk (fsLit "Data.Array.Parallel.Prelude.Base.Double")
57   , dph_Prelude_Bool            = mk (fsLit "Data.Array.Parallel.Prelude.Base.Bool")
58   , dph_Prelude_Tuple           = mk (fsLit "Data.Array.Parallel.Prelude.Base.Tuple")
59   }
60   where mk = mkModule pkg . mkModuleNameFS
61
62
63 dph_Orphans :: [Modules -> Module]
64 dph_Orphans
65  = [ dph_PArray_Scalar
66    , dph_PArray_ScalarInstances
67    , dph_PArray_PReprInstances
68    , dph_PArray_PDataInstances
69    , dph_Scalar
70    ]