Safe Haskell | None |
---|
- data Inline
- = Inline Arity
- | DontInline
- addInlineArity :: Inline -> Int -> Inline
- inlineMe :: Inline
- hoistBinding :: Var -> CoreExpr -> VM ()
- hoistExpr :: FastString -> CoreExpr -> Inline -> VM Var
- hoistVExpr :: VExpr -> Inline -> VM VVar
- hoistPolyVExpr :: [TyVar] -> [Var] -> Inline -> VM VExpr -> VM VExpr
- takeHoisted :: VM [(Var, CoreExpr)]
Documentation
hoistBinding :: Var -> CoreExpr -> VM ()Source
hoistPolyVExpr :: [TyVar] -> [Var] -> Inline -> VM VExpr -> VM VExprSource
Hoist a polymorphic vectorised expression into a new top-level binding (representing a closure function).
The hoisted expression is parameterised by (1) a set of type variables and (2) a set of value
variables that are passed as conventional type and value arguments. The latter is implicitly
extended by the set of PA
dictionaries required for the type variables.
takeHoisted :: VM [(Var, CoreExpr)]Source