ddc-core-flow-0.4.2.1: Disciplined Disciple Compiler data flow compiler.

Safe HaskellNone
LanguageHaskell98

DDC.Core.Flow.Lower

Synopsis

Documentation

data Config Source

Configuration for the lower transform.

Constructors

Config 

Fields

configMethod :: Method
 

defaultConfigScalar :: Config Source

Config for producing code with just scalar operations.

defaultConfigKernel :: Config Source

Config for producing code with vector operations, where the loops just handle a size of data which is an even multiple of the vector width.

defaultConfigVector :: Config Source

Config for producing code with vector operations, where the loops handle arbitrary data sizes, of any number of elements.

data Method Source

What lowering method to use.

Constructors

MethodScalar

Produce sequential scalar code with nested loops.

MethodKernel

Produce vector kernel code that only processes an even multiple of the vector width.

MethodVector

Try to produce sequential vector code, falling back to scalar code if this is not possible.

data Lifting Source

Lifting config controls how many elements should be processed per loop iteration.

Constructors

Lifting 

Fields

liftingFactor :: Int
 

lowerModule :: Config -> ModuleF -> Either Error ModuleF Source

Take a module that contains some well formed series processes defined at top-level, and lower them into procedures.