Skip to content

Seperate CPR analysis from the demand analyser

Sebastian Graf requested to merge wip/sep-cpr into master

The reasons for that can be found in the wiki: https://gitlab.haskell.org/ghc/ghc/wikis/nested-cpr/split-off-cpr

We now run CPR after demand analysis (except for after the final demand analysis run just before code gen). CPR got its own dump flags (-ddump-cpr-anal, -ddump-cpr-signatures), but not its own flag to activate/deactivate. It will run with -fstrictness/-fworker-wrapper.

As explained on the wiki page, this step is necessary for a sane Nested CPR analysis. And it has quite positive impact on compiler performance.

Here's a summary of NoFib results (And here is a more recent one that found that nothing changed in the meantime), throughout positive.

Edited by Sebastian Graf

Merge request reports