Vectorise.Utils.Hoisting

ghc-7.0.4: The GHC API

Vectorise.Utils.Hoisting

Synopsis

- 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] -> Inline -> VM VExpr -> VM VExpr
- takeHoisted :: VM [(Var, CoreExpr)]

# Documentation

data Inline

Records whether we should inline a particular binding.

Constructors

Inline Arity |
DontInline |

addInlineArity :: Inline -> Int -> Inline

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

inlineMe :: Inline

Says to always inline a binding.

hoistBinding :: Var -> CoreExpr -> VM ()

hoistExpr :: FastString -> CoreExpr -> Inline -> VM Var

hoistVExpr :: VExpr -> Inline -> VM VVar

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

takeHoisted :: VM [(Var, CoreExpr)]