ddc-core-llvm-0.4.2.2: Disciplined Disciple Compiler LLVM code generator.

Safe HaskellNone
LanguageHaskell98

DDC.Llvm.Transform.Flatten

Description

Flatten out the extended operators in our expression type to instructions that the LLVM compiler will accept directly.

The LLVM expresion language is anemic by design. During code generation we use a fatter language, but now need to flatten out the extra operators into plain LLVM instructions.

This transform is kept separate from the Simpl as it the input and output programs are in different (sub) languages.

Synopsis

Documentation

flatten :: Module -> Module Source

Flatten expressions in a module.