-dph_Modules :: PackageId -> Modules
-dph_Modules pkg = Modules {
- dph_PArray = mk (fsLit "Data.Array.Parallel.Lifted.PArray")
- , dph_Repr = mk (fsLit "Data.Array.Parallel.Lifted.Repr")
- , dph_Closure = mk (fsLit "Data.Array.Parallel.Lifted.Closure")
- , dph_Unboxed = mk (fsLit "Data.Array.Parallel.Lifted.Unboxed")
- , dph_Instances = mk (fsLit "Data.Array.Parallel.Lifted.Instances")
- , dph_Combinators = mk (fsLit "Data.Array.Parallel.Lifted.Combinators")
-
- , dph_Prelude_PArr = mk (fsLit "Data.Array.Parallel.Prelude.Base.PArr")
- , dph_Prelude_Int = mk (fsLit "Data.Array.Parallel.Prelude.Base.Int")
- , dph_Prelude_Word8 = mk (fsLit "Data.Array.Parallel.Prelude.Base.Word8")
- , dph_Prelude_Double = mk (fsLit "Data.Array.Parallel.Prelude.Base.Double")
- , dph_Prelude_Bool = mk (fsLit "Data.Array.Parallel.Prelude.Base.Bool")
- , dph_Prelude_Tuple = mk (fsLit "Data.Array.Parallel.Prelude.Base.Tuple")
- }
- where
- mk = mkModule pkg . mkModuleNameFS
-
-
-data Builtins = Builtins {
- dphModules :: Modules
- , parrayTyCon :: TyCon
- , paTyCon :: TyCon
- , paDataCon :: DataCon
- , preprTyCon :: TyCon
- , prTyCon :: TyCon
- , prDataCon :: DataCon
- , intPrimArrayTy :: Type
- , voidTyCon :: TyCon
- , wrapTyCon :: TyCon
- , enumerationTyCon :: TyCon
- , sumTyCons :: Array Int TyCon
- , closureTyCon :: TyCon
- , voidVar :: Var
- , mkPRVar :: Var
- , mkClosureVar :: Var
- , applyClosureVar :: Var
- , mkClosurePVar :: Var
- , applyClosurePVar :: Var
- , replicatePAIntPrimVar :: Var
- , upToPAIntPrimVar :: Var
- , selectPAIntPrimVar :: Var
- , truesPABoolPrimVar :: Var
- , lengthPAVar :: Var
- , replicatePAVar :: Var
- , emptyPAVar :: Var
- , packPAVar :: Var
- , combinePAVars :: Array Int Var
- , liftingContext :: Var
- }
-
-sumTyCon :: Int -> Builtins -> TyCon
-sumTyCon n bi
- | n >= 2 && n <= mAX_DPH_SUM = sumTyCons bi ! n
- | otherwise = pprPanic "sumTyCon" (ppr n)
-
-prodTyCon :: Int -> Builtins -> TyCon
-prodTyCon n bi
- | n == 1 = wrapTyCon bi
- | n >= 0 && n <= mAX_DPH_PROD = tupleTyCon Boxed n
- | otherwise = pprPanic "prodTyCon" (ppr n)
-
-combinePAVar :: Int -> Builtins -> Var
-combinePAVar n bi
- | n >= 2 && n <= mAX_DPH_COMBINE = combinePAVars bi ! n
- | otherwise = pprPanic "combinePAVar" (ppr n)
-
-initBuiltins :: PackageId -> DsM Builtins