Module convert

Source
Expand description

Conversion logic for the compiler.

This module contains conversion passes that can be applied to an IR. By default, this project only implements lowering passes for compilers, but this module can be extended to support other conversions such as “uppering” passes such as used by decompilers.

Structs§

ChangedOp
ConvertCFToLLVM
ConvertExperimentalToMLIR
ConvertFuncToLLVM
ConvertMLIRToLLVMIR
ConvertMLIRToWat
Convert MLIR to WebAssembly Text format (.wat).
ConvertSCFToCF

Enums§

RewriteResult
Whether a rewrite changed the IR.

Traits§

Pass
A pass is a transformation that can be applied to the IR. MLIR makes a distinction between “translation” and “conversion”. A “conversion” stays within MLIr whereas a “translation” can be used to go from MLIR to an external representation. Here, we don’t make this distinction.
Rewrite

Functions§

apply_rewrites
simple_op_rewrite
Rewrite an operation of type A to an operation of type B.