Follow changes in DPH library: Repr module is gone.
[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_PRepr            :: Module
17   , dph_PArray_PReprInstances   :: Module
18   , dph_PArray_PData            :: Module
19   , dph_PArray_PDataInstances   :: Module
20   , dph_PArray_Types            :: Module
21         
22   , dph_Closure                 :: Module
23   , dph_Unboxed                 :: Module
24   , dph_Combinators             :: Module
25   , dph_Scalar                  :: Module
26
27   , dph_Prelude_PArr            :: Module
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_PRepr            = mk (fsLit "Data.Array.Parallel.PArray.PRepr")
43   , dph_PArray_PReprInstances   = mk (fsLit "Data.Array.Parallel.PArray.PReprInstances")
44   , dph_PArray_PData            = mk (fsLit "Data.Array.Parallel.PArray.PData")
45   , dph_PArray_PDataInstances   = mk (fsLit "Data.Array.Parallel.PArray.PDataInstances")
46   , dph_PArray_Types            = mk (fsLit "Data.Array.Parallel.PArray.Types")
47         
48   , dph_Closure                 = mk (fsLit "Data.Array.Parallel.Lifted.Closure")
49   , dph_Unboxed                 = mk (fsLit "Data.Array.Parallel.Lifted.Unboxed")
50   , dph_Combinators             = mk (fsLit "Data.Array.Parallel.Lifted.Combinators")
51   , dph_Scalar                  = mk (fsLit "Data.Array.Parallel.Lifted.Scalar")
52
53   , dph_Prelude_PArr            = mk (fsLit "Data.Array.Parallel.Prelude.Base.PArr")
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 -- | Project out ids of modules that contain orphan instances that we need to load.
64 dph_Orphans :: [Modules -> Module]
65 dph_Orphans 
66  =      [ dph_PArray_PReprInstances
67         , dph_PArray_PDataInstances ]