summaryrefslogtreecommitdiff
path: root/compiler/Language/Haskell
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2022-10-10 13:39:00 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2022-10-11 08:42:27 +0100
commite4cac1b86f350d837a4b02eebb4cd5c637181cfc (patch)
tree92052d95fd43120aab46aea56168c61f0daaa208 /compiler/Language/Haskell
parent2fb056d74c3554bcfffde2e8ad65484aacf46160 (diff)
downloadhaskell-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