ghc-8.4.4: The GHC API

Safe HaskellNone
LanguageHaskell2010

Vectorise.Utils

Contents

Synopsis

Documentation

Annotated Exprs

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

Collect all consecutive value binders that are not dictionaries.

PD Functions

replicatePD Source #

Arguments

:: CoreExpr

Number of copies in the resulting array.

-> CoreExpr

Value to replicate.

-> VM CoreExpr 

Produce an array containing copies of a given element.

emptyPD :: Type -> VM CoreExpr Source #

An empty array of the given type.

packByTagPD Source #

Arguments

:: Type

Element type.

-> CoreExpr

Source array.

-> CoreExpr

Length of resulting array.

-> CoreExpr

Tag values of elements in source array.

-> CoreExpr

The tag value for the elements to select.

-> VM CoreExpr 

Select some elements from an array that correspond to a particular tag value and pack them into a new array.

packByTagPD Int# [:23, 42, 95, 50, 27, 49:]  3 [:1, 2, 1, 2, 3, 2:] 2
  ==> [:42, 50, 49:]

combinePD Source #

Arguments

:: Type

Element type

-> CoreExpr

Length of resulting array

-> CoreExpr

Selector.

-> [CoreExpr]

Arrays to combine.

-> VM CoreExpr 

Combine some arrays based on a selector. The selector says which source array to choose for each element of the resulting array.

liftPD :: CoreExpr -> VM CoreExpr Source #

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

Scalars

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.