GHC Trac Home
GHC Git Repos
Report a bug
Mailing Lists & IRC
The GHC Team
GHC Status Info
Tickets I Created
Patches for review
New Feature Req
side by side
lines around each change
Show the changes in full context
White space changes
Feb 1, 2014 6:26:02 PM (
* adding adjustments to `Sp`.
* '''Sinking assignments''', implemented in `CmmSink`, performs these optimizations:
* moves assignments closer to their uses, to reduce register pressure
* pushes assignments into a single branch of a conditional if possible
* inlines assignments to registers that are mentioned only once
* discards dead assignments
It currently does not eliminate dead code in loops (#8327) and has some other minor deficiencies (eg. #8336).
* '''CAF analysis''', implemented in `CmmBuildInfoTables`. Computed CAF information is returned from `cmmPipeline` and used to create Static Reference Tables (SRT). See [wiki:Commentary/Rts/Storage/GC/CAFs here] for some more detail on CAFs and SRTs.
* '''Split into multiple !CmmProcs''', implemented in `CmmProcPointZ`. At this point we build an info-table for each of the !CmmProcs, including SRTs. Done on the basis of the live local variables (by now mapped to stack slots) and live CAF statics.
* `LastCall` and `LastReturn` nodes are replaced by `Jump`s.