diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2022-10-10 13:39:00 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2022-10-11 08:42:27 +0100 |
commit | e4cac1b86f350d837a4b02eebb4cd5c637181cfc (patch) | |
tree | 92052d95fd43120aab46aea56168c61f0daaa208 /compiler/Language/Haskell | |
parent | 2fb056d74c3554bcfffde2e8ad65484aacf46160 (diff) | |
download | haskell-wip/T22084.tar.gz |
Make SpecConstr bale out less oftenwip/T22084
When doing performance debugging on #22084 / !8901, I found that the
algorithm in SpecConstr.decreaseSpecCount was so aggressive that if
there were /more/ specialisations available for an outer function,
that could more or less kill off specialisation for an /inner/
function. (An example was in nofib/spectral/fibheaps.)
This patch makes it a bit more aggressive, by dividing by 2, rather
than by the number of outer specialisations.
This makes the program bigger, temporarily:
T19695(normal) ghc/alloc +11.3% BAD
because we get more specialisation. But lots of other programs
compile a bit faster and the geometric mean in perf/compiler
is 0.0%.
Metric Increase:
T19695
Diffstat (limited to 'compiler/Language/Haskell')
0 files changed, 0 insertions, 0 deletions