Vectorise.Builtins.Base

ghc-8.4.4: The GHC API

Safe Haskell | None
Language | Haskell2010

Vectorise.Builtins.Base

Contents

- Hard config
- Builtins
- Projections

Description

Builtin types and functions used by the vectoriser. These are all defined in `Prim`.

Synopsis

- mAX_DPH_PROD :: Int
- mAX_DPH_SUM :: Int
- mAX_DPH_COMBINE :: Int
- mAX_DPH_SCALAR_ARGS :: Int
- aLL_DPH_PRIM_TYCONS :: [Name]
- data Builtins = Builtins {
  - parrayTyCon :: TyCon
  - pdataTyCon :: TyCon
  - pdatasTyCon :: TyCon
  - prClass :: Class
  - prTyCon :: TyCon
  - preprTyCon :: TyCon
  - paClass :: Class
  - paTyCon :: TyCon
  - paDataCon :: DataCon
  - paPRSel :: Var
  - replicatePDVar :: Var
  - replicatePD_PrimVars :: NameEnv Var
  - emptyPDVar :: Var
  - emptyPD_PrimVars :: NameEnv Var
  - packByTagPDVar :: Var
  - packByTagPD_PrimVars :: NameEnv Var
  - combinePDVars :: Array Int Var
  - combinePD_PrimVarss :: Array Int (NameEnv Var)
  - scalarClass :: Class
  - scalarZips :: Array Int Var
  - voidTyCon :: TyCon
  - voidVar :: Var
  - fromVoidVar :: Var
  - sumTyCons :: Array Int TyCon
  - wrapTyCon :: TyCon
  - pvoidVar :: Var
  - pvoidsVar :: Var
  - closureTyCon :: TyCon
  - closureVar :: Var
  - liftedClosureVar :: Var
  - applyVar :: Var
  - liftedApplyVar :: Var
  - closureCtrFuns :: Array Int Var
  - selTys :: Array Int Type
  - selsTys :: Array Int Type
  - selsLengths :: Array Int CoreExpr
  - selReplicates :: Array Int CoreExpr
  - selTagss :: Array Int CoreExpr
  - selElementss :: Array (Int, Int) CoreExpr
  - liftingContext :: Var
  }
- selTy :: Int -> Builtins -> Type
- selsTy :: Int -> Builtins -> Type
- selReplicate :: Int -> Builtins -> CoreExpr
- selTags :: Int -> Builtins -> CoreExpr
- selElements :: Int -> Int -> Builtins -> CoreExpr
- selsLength :: Int -> Builtins -> CoreExpr
- sumTyCon :: Int -> Builtins -> TyCon
- prodTyCon :: Int -> Builtins -> TyCon
- prodDataCon :: Int -> Builtins -> DataCon
- replicatePD_PrimVar :: TyCon -> Builtins -> Var
- emptyPD_PrimVar :: TyCon -> Builtins -> Var
- packByTagPD_PrimVar :: TyCon -> Builtins -> Var
- combinePDVar :: Int -> Builtins -> Var
- combinePD_PrimVar :: Int -> TyCon -> Builtins -> Var
- scalarZip :: Int -> Builtins -> Var
- closureCtrFun :: Int -> Builtins -> Var

# Hard config

mAX_DPH_PROD :: Int #

mAX_DPH_SUM :: Int #

mAX_DPH_COMBINE :: Int #

mAX_DPH_SCALAR_ARGS :: Int #

aLL_DPH_PRIM_TYCONS :: [Name] #

# Builtins

data Builtins #

Holds the names of the types and functions from `Prim` that are used by the vectoriser.

Constructors

Builtins |
Fields parrayTyCon :: TyCon PArray pdataTyCon :: TyCon PData pdatasTyCon :: TyCon PDatas prClass :: Class PR prTyCon :: TyCon PR preprTyCon :: TyCon PRepr paClass :: Class PA paTyCon :: TyCon PA paDataCon :: DataCon PA paPRSel :: Var PA replicatePDVar :: Var replicatePD replicatePD_PrimVars :: NameEnv Var replicatePD_Int# etc. emptyPDVar :: Var emptyPD emptyPD_PrimVars :: NameEnv Var emptyPD_Int# etc. packByTagPDVar :: Var packByTagPD packByTagPD_PrimVars :: NameEnv Var packByTagPD_Int# etc. combinePDVars :: Array Int Var combinePD combinePD_PrimVarss :: Array Int (NameEnv Var) combine2PD_Int# etc. scalarClass :: Class Scalar scalarZips :: Array Int Var map, zipWith, zipWith3 voidTyCon :: TyCon Void voidVar :: Var void fromVoidVar :: Var fromVoid sumTyCons :: Array Int TyCon Sum2 .. Sum3 wrapTyCon :: TyCon Wrap pvoidVar :: Var pvoid pvoidsVar :: Var pvoids closureTyCon :: TyCon :-> closureVar :: Var closure liftedClosureVar :: Var liftedClosure applyVar :: Var $: liftedApplyVar :: Var liftedApply closureCtrFuns :: Array Int Var closure1 .. closure3 selTys :: Array Int Type Sel2 selsTys :: Array Int Type Sels2 selsLengths :: Array Int CoreExpr lengthSels2 selReplicates :: Array Int CoreExpr replicate2 selTagss :: Array Int CoreExpr tagsSel2 selElementss :: Array (Int, Int) CoreExpr elementsSel2_0 .. elementsSel_2_1 liftingContext :: Var lc

# Projections

selTy :: Int -> Builtins -> Type #

selsTy :: Int -> Builtins -> Type #

selReplicate :: Int -> Builtins -> CoreExpr #

selTags :: Int -> Builtins -> CoreExpr #

selElements :: Int -> Int -> Builtins -> CoreExpr #

selsLength :: Int -> Builtins -> CoreExpr #

sumTyCon :: Int -> Builtins -> TyCon #

prodTyCon :: Int -> Builtins -> TyCon #

prodDataCon :: Int -> Builtins -> DataCon #

replicatePD_PrimVar :: TyCon -> Builtins -> Var #

emptyPD_PrimVar :: TyCon -> Builtins -> Var #

packByTagPD_PrimVar :: TyCon -> Builtins -> Var #

combinePDVar :: Int -> Builtins -> Var #

combinePD_PrimVar :: Int -> TyCon -> Builtins -> Var #

scalarZip :: Int -> Builtins -> Var #

closureCtrFun :: Int -> Builtins -> Var #