On optimization I deliberately aimed low: a small set of passes, nothing beyond what I could prove. Everything is verified against clang/gcc output on real software rather than against my own expectations, and the compiler compiles itself and reproduces itself bit-for-bit, so it's its own regression test. In practice the generated code holds up fine — DOOM runs smoothly, so do Lua. I chose provable correctness over speed; optimization is the least finished part of the project and there's real work left there.
On optimization I deliberately aimed low: a small set of passes, nothing beyond what I could prove. Everything is verified against clang/gcc output on real software rather than against my own expectations, and the compiler compiles itself and reproduces itself bit-for-bit, so it's its own regression test. In practice the generated code holds up fine — DOOM runs smoothly, so do Lua. I chose provable correctness over speed; optimization is the least finished part of the project and there's real work left there.