diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2022-04-20 11:50:48 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2022-05-23 17:09:34 +0100 |
commit | bc723ac2cf2cfc329de4b8523bf891965075879b (patch) | |
tree | 30b6402a103a7d794a4eb0613e7714dfa0154311 /bindisttest | |
parent | ffbe28e56aa382164525300fbc32d78eefd95e7d (diff) | |
download | haskell-bc723ac2cf2cfc329de4b8523bf891965075879b.tar.gz |
Improve FloatOut and SpecConstrwip/T21386
This patch addresses a relatively obscure situation that arose
when chasing perf regressions in !7847, which itself is fixing
It does two things:
* SpecConstr can specialise on ($df d1 d2) dictionary arguments
* FloatOut no longer checks argument strictness
See Note [Specialising on dictionaries] in GHC.Core.Opt.SpecConstr.
A test case is difficult to construct, but it makes a big difference
in nofib/real/eff/VSM, at least when we have the patch for #21286
installed. (The latter stops worker/wrapper for dictionary arguments).
There is a spectacular, but slightly illusory, improvement in
runtime perf on T15426. I have documented the specifics in
T15426 itself.
Metric Decrease:
T15426
Diffstat (limited to 'bindisttest')
0 files changed, 0 insertions, 0 deletions