ghc-7.0.4: The GHC API

Vectorise.Utils

Contents

- Annotated Exprs
- PD Functions
- Scalars
- Naming

Synopsis

- 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

collectAnnTypeBinders :: AnnExpr Var ann -> ([Var], AnnExpr Var ann)Source

collectAnnValBinders :: AnnExpr Var ann -> ([Var], AnnExpr Var ann)Source

isAnnTypeArg :: AnnExpr b ann -> Bool Source

# PD Functions

replicatePD :: CoreExpr -> CoreExpr -> VM CoreExpr Source

emptyPD :: Type -> VM CoreExpr Source

packByTagPD :: Type -> CoreExpr -> CoreExpr -> CoreExpr -> CoreExpr -> VM CoreExpr Source

combinePD :: Type -> CoreExpr -> CoreExpr -> [CoreExpr] -> VM CoreExpr Source

liftPD :: CoreExpr -> VM CoreExpr Source

Like `replicatePD` but use the lifting context in the vectoriser state.

# Scalars

zipScalars :: [Type] -> Type -> VM CoreExpr Source

scalarClosure :: [Type] -> Type -> CoreExpr -> CoreExpr -> VM CoreExpr Source

# Naming

newLocalVar :: FastString -> Type -> VM Var Source

Make a fresh local variable with the given type. The variable's name is formed using the given string as the prefix.