- module Vectorise.Utils.Base
- module Vectorise.Utils.Closure
- module Vectorise.Utils.Hoisting
- module Vectorise.Utils.PADict
- module Vectorise.Utils.PRDict
- module Vectorise.Utils.Poly
- collectAnnTypeArgs :: AnnExpr b ann -> (AnnExpr b ann, [Type])
- collectAnnTypeBinders :: AnnExpr Var ann -> ([Var], AnnExpr Var ann)
- collectAnnValBinders :: AnnExpr Var ann -> ([Var], AnnExpr Var ann)
- isAnnTypeArg :: AnnExpr b ann -> Bool
- replicatePD :: CoreExpr -> CoreExpr -> VM CoreExpr
- emptyPD :: Type -> VM CoreExpr
- packByTagPD :: Type -> CoreExpr -> CoreExpr -> CoreExpr -> CoreExpr -> VM CoreExpr
- combinePD :: Type -> CoreExpr -> CoreExpr -> [CoreExpr] -> VM CoreExpr
- liftPD :: CoreExpr -> VM CoreExpr
- zipScalars :: [Type] -> Type -> VM CoreExpr
- scalarClosure :: [Type] -> Type -> CoreExpr -> CoreExpr -> VM CoreExpr
- newLocalVar :: FastString -> Type -> VM Var
Documentation
module Vectorise.Utils.Base
module Vectorise.Utils.Closure
module Vectorise.Utils.Hoisting
module Vectorise.Utils.PADict
module Vectorise.Utils.PRDict
module Vectorise.Utils.Poly
Annotated Exprs
collectAnnTypeArgs :: AnnExpr b ann -> (AnnExpr b ann, [Type])Source
isAnnTypeArg :: AnnExpr b ann -> BoolSource
PD Functions
liftPD :: CoreExpr -> VM CoreExprSource
Like replicatePD
but use the lifting context in the vectoriser state.
Scalars
Naming
newLocalVar :: FastString -> Type -> VM VarSource
Make a fresh local variable with the given type. The variable's name is formed using the given string as the prefix.