Vectoriser gets all DPH library identifiers from Data.Array.Parallel.Prim
[ghc.git] / compiler / vectorise / Vectorise / Builtins.hs
index 5545df8..bf0fae1 100644 (file)
@@ -1,74 +1,32 @@
--- Types and functions declared in the DPH packages and used by the vectoriser.
+-- Types and functions declared in 'Data.Array.Parallel.Prim' and used by the vectoriser.
 --
--- The @Builtins@ structure holds the name of all the things in the DPH packages that appear in
--- code generated by the vectoriser. We can get specific things using the selectors, which print a
--- civilized panic message if the specified thing cannot be found.
+-- The @Builtins@ structure holds the name of all the things in 'Data.Array.Parallel.Prim' that appear in
+-- code generated by the vectoriser.
 
 module Vectorise.Builtins (
   -- * Builtins
   Builtins(..),
-  indexBuiltin,
   
   -- * Wrapped selectors
+  parray_PrimTyCon,
   selTy,
   selReplicate,
-  selPick,
   selTags,
   selElements,
   sumTyCon,
   prodTyCon,
   prodDataCon,
+  replicatePD_PrimVar,
+  emptyPD_PrimVar,
+  packByTagPD_PrimVar,
   combinePDVar,
+  combinePD_PrimVar,
   scalarZip,
   closureCtrFun,
 
   -- * Initialisation
-  initBuiltins, initBuiltinVars, initBuiltinTyCons, 
-  initBuiltinPAs, initBuiltinPRs,
-  
-  -- * Lookup
-  primMethod,
-  primPArray
+  initBuiltins, initBuiltinVars, initBuiltinTyCons
 ) where
-  
+
 import Vectorise.Builtins.Base
-import Vectorise.Builtins.Modules
 import Vectorise.Builtins.Initialise
-
-import TysPrim
-import IfaceEnv
-import TyCon
-import DsMonad
-import NameEnv
-import Name
-import Var
-import Control.Monad
-
-
--- |Lookup a method function given its name and instance type.
---
-primMethod :: TyCon -> String -> Builtins -> DsM (Maybe Var)
-primMethod  tycon method (Builtins { dphModules = mods })
-  | Just suffix <- lookupNameEnv prim_ty_cons (tyConName tycon)
-  = liftM Just
-  $ dsLookupGlobalId =<< lookupOrig (dph_Unboxed mods)
-                                    (mkVarOcc $ method ++ suffix)
-
-  | otherwise = return Nothing
-
--- |Lookup the representation type we use for PArrays that contain a given element type.
---
-primPArray :: TyCon -> Builtins -> DsM (Maybe TyCon)
-primPArray tycon (Builtins { dphModules = mods })
-  | Just suffix <- lookupNameEnv prim_ty_cons (tyConName tycon)
-  = liftM Just
-  $ dsLookupTyCon =<< lookupOrig (dph_Unboxed mods)
-                                 (mkTcOcc $ "PArray" ++ suffix)
-
-  | otherwise = return Nothing
-
-prim_ty_cons :: NameEnv String
-prim_ty_cons = mkNameEnv [mk_prim intPrimTyCon]
-  where
-    mk_prim tycon = (tyConName tycon, '_' : getOccString tycon)
-