Builtin types and functions used by the vectoriser. These are all defined in the DPH package.
- mAX_DPH_PROD :: Int
- mAX_DPH_SUM :: Int
- mAX_DPH_COMBINE :: Int
- mAX_DPH_SCALAR_ARGS :: Int
- data Builtins = Builtins {
- dphModules :: Modules
- parrayTyCon :: TyCon
- parrayDataCon :: DataCon
- pdataTyCon :: TyCon
- paClass :: Class
- paTyCon :: TyCon
- paDataCon :: DataCon
- paPRSel :: Var
- preprTyCon :: TyCon
- prClass :: Class
- prTyCon :: TyCon
- prDataCon :: DataCon
- replicatePDVar :: Var
- emptyPDVar :: Var
- packByTagPDVar :: Var
- combinePDVars :: Array Int Var
- scalarClass :: Class
- closureTyCon :: TyCon
- closureVar :: Var
- applyVar :: Var
- liftedClosureVar :: Var
- liftedApplyVar :: Var
- closureCtrFuns :: Array Int Var
- voidTyCon :: TyCon
- wrapTyCon :: TyCon
- sumTyCons :: Array Int TyCon
- voidVar :: Var
- pvoidVar :: Var
- fromVoidVar :: Var
- punitVar :: Var
- selTys :: Array Int Type
- selReplicates :: Array Int CoreExpr
- selPicks :: Array Int CoreExpr
- selTagss :: Array Int CoreExpr
- selEls :: Array (Int, Int) CoreExpr
- scalarZips :: Array Int Var
- liftingContext :: Var
- indexBuiltin :: (Ix i, Outputable i) => String -> (Builtins -> Array i a) -> i -> Builtins -> a
- selTy :: Int -> Builtins -> Type
- selReplicate :: Int -> Builtins -> CoreExpr
- selPick :: Int -> Builtins -> CoreExpr
- selTags :: Int -> Builtins -> CoreExpr
- selElements :: Int -> Int -> Builtins -> CoreExpr
- sumTyCon :: Int -> Builtins -> TyCon
- prodTyCon :: Int -> Builtins -> TyCon
- prodDataCon :: Int -> Builtins -> DataCon
- combinePDVar :: Int -> Builtins -> Var
- scalarZip :: Int -> Builtins -> Var
- closureCtrFun :: Int -> Builtins -> Var
Hard config
Builtins
Holds the names of the builtin types and functions used by the vectoriser.
:: (Ix i, Outputable i) | |
=> String | Name of the selector we've used, for panic messages. |
-> (Builtins -> Array i a) | Field selector for the |
-> i | Index into the array. |
-> Builtins | |
-> a |
Get an element from one of the arrays of contained by a Builtins
.
If the indexed thing is not in the array then panic.
Projections
selReplicate :: Int -> Builtins -> CoreExprSource
prodDataCon :: Int -> Builtins -> DataConSource
combinePDVar :: Int -> Builtins -> VarSource
closureCtrFun :: Int -> Builtins -> VarSource