diff options
author | Sebastian Graf <sebastian.graf@kit.edu> | 2022-06-07 11:31:22 +0200 |
---|---|---|
committer | Sebastian Graf <sebastian.graf@kit.edu> | 2022-06-20 09:43:32 +0200 |
commit | 49fb2f9b16ca987648d2ac57eecf1892d49852ec (patch) | |
tree | 5bad0a2814b084d1811ca89ce0e6d70ae837dcbf /.gitignore | |
parent | b570da84b7aad5ca3f90f2d1c1a690c927e99fe9 (diff) | |
download | haskell-49fb2f9b16ca987648d2ac57eecf1892d49852ec.tar.gz |
Simplify: Take care with eta reduction in recursive RHSs (#21652)
Similar to the fix to #20836 in CorePrep, we now track the set of enclosing
recursive binders in the SimplEnv and SimpleOptEnv.
See Note [Eta reduction in recursive RHSs] for details.
I also updated Note [Arity robustness] with the insights Simon and I had in a
call discussing the issue.
Fixes #21652.
Unfortunately, we get a 5% ghc/alloc regression in T16577. That is due to
additional eta reduction in GHC.Read.choose1 and the resulting ANF-isation
of a large list literal at the top-level that didn't happen before (presumably
because it was too interesting to float to the top-level). There's not much we
can do about that.
Metric Increase:
T16577
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions