| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Futhark.Internalise.Bindings
Description
Internalising bindings.
Synopsis
- internaliseAttrs :: [AttrInfo VName] -> InternaliseM Attrs
- internaliseAttr :: AttrInfo VName -> InternaliseM Attr
- data FunParams = FunParams {
- funShapeParams :: [FParam SOACS]
- funValueParams :: [[Tree (FParam SOACS)]]
- funSubsts :: VarSubsts
- funShapeSubst :: VarSubsts
- internaliseFParams :: [TypeParam] -> [Pat ParamType] -> InternaliseM FunParams
- bindFParams :: FunParams -> InternaliseM a -> InternaliseM a
- bindingFParams :: [TypeParam] -> [Pat ParamType] -> ([FParam SOACS] -> [[Tree (FParam SOACS)]] -> InternaliseM a) -> InternaliseM a
- bindingLoopParams :: [TypeParam] -> Pat ParamType -> [Type] -> ([FParam SOACS] -> [FParam SOACS] -> InternaliseM a) -> InternaliseM a
- bindingLambdaParams :: [Pat ParamType] -> [Type] -> ([LParam SOACS] -> InternaliseM a) -> InternaliseM a
- stmPat :: Pat ParamType -> [Type] -> ([VName] -> InternaliseM a) -> InternaliseM a
Documentation
internaliseAttrs :: [AttrInfo VName] -> InternaliseM Attrs Source #
The internalised parameters of a function. Computing these assigns fresh
names, so we split it from binding them in scope (bindFParams): that way a
caller can internalise the parameters once, and both register the function's
calling information and later bind the parameters for its body without
recomputing them.
Constructors
| FunParams | |
Fields
| |
internaliseFParams :: [TypeParam] -> [Pat ParamType] -> InternaliseM FunParams Source #
Internalise a function's parameters (see FunParams).
bindFParams :: FunParams -> InternaliseM a -> InternaliseM a Source #
Bind already-internalised parameters (see internaliseFParams) in scope.
bindingFParams :: [TypeParam] -> [Pat ParamType] -> ([FParam SOACS] -> [[Tree (FParam SOACS)]] -> InternaliseM a) -> InternaliseM a Source #
bindingLoopParams :: [TypeParam] -> Pat ParamType -> [Type] -> ([FParam SOACS] -> [FParam SOACS] -> InternaliseM a) -> InternaliseM a Source #
bindingLambdaParams :: [Pat ParamType] -> [Type] -> ([LParam SOACS] -> InternaliseM a) -> InternaliseM a Source #
stmPat :: Pat ParamType -> [Type] -> ([VName] -> InternaliseM a) -> InternaliseM a Source #