§ Timings of passes in GHC, and low hanging fruit in the backend:
- One can use
-v3 to get pass timings.
- Apparently, GHC spends a lot of time in the simplifier, and time spend in the backend is peanuts in comparison to this.
- Register allocation, common block elimination, block layout and pretty printing are the "slow" things in the backend as far as I remember. - There are also a handful of TODO's in the x86 codegen which still apply. So you can try to grep for these. - Strength reduction for division by a constant