Reinstate constant propagation in some form
The new codegen doesn't have a constant propagation pass. This used to be done by the mini-inliner which was ad-hoc at best; instead of the mini-inliner we now have CmmSink which is much less ad-hoc but doesn't do constant folding or propagation.
This is a regression that will affect performance of things like copyArray#, so we should fix it before the release.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.7 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | highest |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | tibbe |
| Operating system | |
| Architecture |