ghc-7.8.4: The GHC API

Safe HaskellNone
LanguageHaskell98

Vectorise.Utils.Hoisting

Synopsis

Documentation

data Inline Source

Records whether we should inline a particular binding.

Constructors

Inline Arity 
DontInline 

addInlineArity :: Inline -> Int -> Inline Source

Add to the arity contained within an Inline, if any.

inlineMe :: Inline Source

Says to always inline a binding.

hoistPolyVExpr :: [TyVar] -> [Var] -> Inline -> VM VExpr -> VM VExpr Source

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.