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

Safe HaskellNone

DDC.Core.Flow.Lower

Synopsis

Documentation

data Config Source

Configuration for the lower transform.

Constructors

Config 

Fields

configMethod :: Method
 

Instances

Eq Config 
Show Config 

defaultConfigScalar :: ConfigSource

Config for producing code with just scalar operations.

defaultConfigKernel :: ConfigSource

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 :: ConfigSource

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.

Instances

Eq Method 
Show Method 

data Lifting Source

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

Constructors

Lifting 

Fields

liftingFactor :: Int
 

Instances

Eq Lifting 
Show Lifting 

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

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