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§
- Changed
Op - ConvertCF
ToLLVM - Convert
Experimental ToMLIR - Convert
Func ToLLVM - ConvertMLIR
ToLLVMIR - ConvertMLIR
ToWat - Convert MLIR to WebAssembly Text format (
.wat
). - ConvertSCF
ToCF
Enums§
- Rewrite
Result - 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 typeB
.