Maple 1.0.0 Release Notes
Maple compiler infrastructure provides a C compiler, stable aarch64 static code generators, as well as a large suite of optimizations.
Front End
Hir2mpl supports .ast, .dex, .class and .jar as inputs. Currently, .dex, .class and .jar are not enabled. It enables the corresponding compilation process based on the inputs.
Hir2mpl takes .ast file generated by clang as input and converts it to a mpl file. For more details about mpl file and MapleIR, see MapleIRDesign.
Middle End
Function inlining
Constant folding
Auto vectorization
Loop unrolling
CFG simplification
Value range propagation
Dead store elimination
Copy propagation
Partial Redundancy Elimination
Induction variable optimizations
Code sinking
Optimized basic block layout
Back End
Copy propagation
Target specific propagation
Register coalescence
Peephole optimization
Dead code elimination
If conversion optimization
Extended block optimization
Instruction scheduling
Register allocation
CFG optimization
Other Information
At this time, Maple can work properly with SPEC CPU 2017, gcc.c-torture. We use Clang as our parser&lexer and aarch64-linux-gnu-gcc as our assembler&linker.
Our own parser&lexer is under development.