Simplifier: Try not to force all binds after each run
While I was looking for something else, I had a short look at #13426 (closed).
I was wondering why it is (was, after I created this issue) still open. The OP looks wildly outdated, with the module restructuring and all the refactorings that happened in the meantime, as well as @trac-rwbarton's fix for the Simplifier that left over one TODO identified by #13426 (comment 136120):
Reopening again, because we still have the Big Hamme
| let sz = coreBindsSize binds , () <- sz `seq` () -- Force it
in
SimplCore
. Is this still necessary? Could we just remove it altogether?
And indeed, this strange seq
has made it until today (grep for Force it
, I found it in GHC.Core.Opt.Simplify:207). So it appears we force all bindings after each Simplifier run! A Big Hammer, indeed.
Proposal
Can we remove the Big Hammer without affecting residency as badly as reported in #13426 (closed)? Where is the space leak we are working around?
I don't think this is an important issue and I'm certainly not going to investigate, but it is a summary of the leftovers of #13426 (closed) with a Plow priority rather than Phigh.