diff options
author | Sebastian Graf <sebastian.graf@kit.edu> | 2021-10-13 17:25:30 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-10-29 05:02:25 -0400 |
commit | 925c47b46529d202190f18bd653a6945caa51823 (patch) | |
tree | abcd83a8a9e7e6cac99025850a6e762f609dfbb6 /.gitignore | |
parent | 7170052651ff02bfcf1e9611f0813dd20a7c8558 (diff) | |
download | haskell-925c47b46529d202190f18bd653a6945caa51823.tar.gz |
WorkWrap: Update Unfolding with WW'd body prior to `tryWW` (#20510)
We have a function in #20510 that is small enough to get a stable unfolding in WW:
```hs
small :: Int -> Int
small x = go 0 x
where
go z 0 = z * x
go z y = go (z+y) (y-1)
```
But it appears we failed to use the WW'd RHS as the stable unfolding. As a result,
inlining `small` would expose the non-WW'd version of `go`. That appears to regress
badly in #19727 which is a bit too large to extract a reproducer from that is
guaranteed to reproduce across GHC versions.
The solution is to simply update the unfolding in `certainlyWillInline` with the
WW'd RHS.
Fixes #20510.
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions