-mAX_DPH_PROD :: Int
-mAX_DPH_PROD = 5
-
-mAX_DPH_SUM :: Int
-mAX_DPH_SUM = 2
-
-mAX_DPH_COMBINE :: Int
-mAX_DPH_COMBINE = 2
-
-mAX_DPH_SCALAR_ARGS :: Int
-mAX_DPH_SCALAR_ARGS = 3
-
-data Modules = Modules {
- dph_PArray :: Module
- , dph_Repr :: Module
- , dph_Closure :: Module
- , dph_Unboxed :: Module
- , dph_Instances :: Module
- , dph_Combinators :: Module
- , dph_Scalar :: Module
- , dph_Selector :: Module
- , dph_Prelude_PArr :: Module
- , dph_Prelude_Int :: Module
- , dph_Prelude_Word8 :: Module
- , dph_Prelude_Double :: Module
- , dph_Prelude_Bool :: Module
- , dph_Prelude_Tuple :: Module
- }
-
-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_Scalar = mk (fsLit "Data.Array.Parallel.Lifted.Scalar")
- , dph_Selector = mk (fsLit "Data.Array.Parallel.Lifted.Selector")
-
- , 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
-
-dph_Orphans :: [Modules -> Module]
-dph_Orphans = [dph_Repr, dph_Instances]
-
-data Builtins = Builtins {
- dphModules :: Modules
- , parrayTyCon :: TyCon
- , parrayDataCon :: DataCon
- , pdataTyCon :: TyCon
- , paTyCon :: TyCon
- , paDataCon :: DataCon
- , preprTyCon :: TyCon
- , prTyCon :: TyCon
- , prDataCon :: DataCon
- , voidTyCon :: TyCon
- , wrapTyCon :: TyCon
- , selTys :: Array Int Type
- , selReplicates :: Array Int CoreExpr
- , selPicks :: Array Int CoreExpr
- , selTagss :: Array Int CoreExpr
- , selEls :: Array (Int, Int) CoreExpr
- , sumTyCons :: Array Int TyCon
- , closureTyCon :: TyCon
- , voidVar :: Var
- , pvoidVar :: Var
- , fromVoidVar :: Var
- , punitVar :: Var
- , closureVar :: Var
- , applyVar :: Var
- , liftedClosureVar :: Var
- , liftedApplyVar :: Var
- , replicatePDVar :: Var
- , emptyPDVar :: Var
- , packByTagPDVar :: Var
- , combinePDVars :: Array Int Var
- , scalarClass :: Class
- , scalarZips :: Array Int Var
- , closureCtrFuns :: Array Int Var
- , liftingContext :: Var
- }
-
-indexBuiltin :: (Ix i, Outputable i) => String -> (Builtins -> Array i a)
- -> i -> Builtins -> a
-indexBuiltin fn f i bi
- | inRange (bounds xs) i = xs ! i
- | otherwise = pprPanic fn (ppr i)
- where
- xs = f bi
-
-selTy :: Int -> Builtins -> Type
-selTy = indexBuiltin "selTy" selTys
-
-selReplicate :: Int -> Builtins -> CoreExpr
-selReplicate = indexBuiltin "selReplicate" selReplicates
-
-selPick :: Int -> Builtins -> CoreExpr
-selPick = indexBuiltin "selPick" selPicks
-
-selTags :: Int -> Builtins -> CoreExpr
-selTags = indexBuiltin "selTags" selTagss