diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2022-10-10 13:39:00 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-10-11 12:49:21 -0400 |
commit | 284cf387537110ce9139bf6ed0841c8f4f41db2a (patch) | |
tree | 0d957c1e409ad1669c23b2922d0cff123cca47ec /config.guess | |
parent | caced75765472a1a94453f2e5a439dba0d04a265 (diff) | |
download | haskell-284cf387537110ce9139bf6ed0841c8f4f41db2a.tar.gz |
Make SpecConstr bale out less often
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 'config.guess')
0 files changed, 0 insertions, 0 deletions