Optimizing SSA compiler


An optimizing, SSA-based compiler written in Rust. The main optimization is a GVN-PRE pass, which operates directly on code in static single assignment form, and peforms both global value numbering and partial redundancy operation at the same time. The compiler's backend conventionalizes the SSA program, performs register allocation with the help of Z3, and selects RISC-V instructions to produce assembly.
Resources
- Source Code
- https://github.com/I-mikan-I/ssa-compiler
- Frontend Explainer
- https://medium.com/@mikn/implementing-ssa-compilers-with-rust-7ef702720bc
- Transformations Explainer
- https://medium.com/@mikn/optimizing-ssa-code-gvn-pre-69de83e3be29
- Backend Explainer
- https://medium.com/@mikn/ssa-compiler-backend-with-rust-and-z3-06fc50eeca65