Don't keep exit join points so much
Fixes #22084 (closed).
Two patches
commit 0f8cab9eef25cca2f4c7535b3f65544c57dddb85 (HEAD -> wip/T22084)
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date: Thu Sep 29 15:20:01 2022 +0100
Inline used-once non-recursive join points very aggressively
Given join j x = rhs in
joinrec k y = ....j x....
where this is the only occurrence of `j`, we want to inline `j`.
(Unless sm_keep_exits is on.)
This is just a tidy-up really. It doesn't change allocation, but
getting rid of a binding is always good.
commit 9abcc262d1379c187ac9bf6d17d2458d7ba7e212
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date: Thu Aug 25 15:54:51 2022 +0100
Don't keep exit join points so much
We were religiously keeping exit join points throughout, which
had some bad effects (#21148, #22084).
This MR arranges that exit join points are inhibited from inlining
only in /one/ Simplifier pass (right after Exitification).
It's not a big deal, but it shaves 0.1% off compile times.