Worker/wrapper: Refactor CPR WW to work for nested CPR (#18174)
In another small step towards bringing a manageable variant of Nested CPR into GHC, this patch refactors worker/wrapper to be able to exploit Nested CPR signatures. See the new Note [Worker/wrapper for CPR]. The nested code path is currently not triggered, though, because all signatures that we annotate are still flat. So purely a refactoring. I am very confident that it works, because I ripped it off !1866 95% unchanged. A few test case outputs changed, but only it's auxiliary names only. I also added test cases for #18109 and #18401. There's a 2.6% metric increase in T13056 after a rebase, caused by an additional Simplifier run. It appears b1d0b9c saw a similar additional iteration. I think it's just a fluke. Metric Increase: T13056
Showing
- compiler/GHC/Core/Opt/CprAnal.hs 4 additions, 3 deletionscompiler/GHC/Core/Opt/CprAnal.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs 460 additions, 293 deletionscompiler/GHC/Core/Opt/WorkWrap/Utils.hs
- testsuite/tests/cpranal/should_compile/T18109.hs 25 additions, 0 deletionstestsuite/tests/cpranal/should_compile/T18109.hs
- testsuite/tests/cpranal/should_compile/T18109.stderr 51 additions, 0 deletionstestsuite/tests/cpranal/should_compile/T18109.stderr
- testsuite/tests/cpranal/should_compile/T18401.hs 20 additions, 0 deletionstestsuite/tests/cpranal/should_compile/T18401.hs
- testsuite/tests/cpranal/should_compile/T18401.stderr 35 additions, 0 deletionstestsuite/tests/cpranal/should_compile/T18401.stderr
- testsuite/tests/cpranal/should_compile/all.T 6 additions, 0 deletionstestsuite/tests/cpranal/should_compile/all.T
- testsuite/tests/simplCore/should_compile/T13143.stderr 5 additions, 5 deletionstestsuite/tests/simplCore/should_compile/T13143.stderr
- testsuite/tests/simplCore/should_compile/T15631.stdout 2 additions, 2 deletionstestsuite/tests/simplCore/should_compile/T15631.stdout
- testsuite/tests/simplCore/should_compile/T18013.stderr 8 additions, 8 deletionstestsuite/tests/simplCore/should_compile/T18013.stderr
- testsuite/tests/simplCore/should_compile/T3717.stderr 5 additions, 5 deletionstestsuite/tests/simplCore/should_compile/T3717.stderr
- testsuite/tests/simplCore/should_compile/T3772.stdout 2 additions, 2 deletionstestsuite/tests/simplCore/should_compile/T3772.stdout
- testsuite/tests/simplCore/should_compile/T4908.stderr 2 additions, 2 deletionstestsuite/tests/simplCore/should_compile/T4908.stderr
- testsuite/tests/simplCore/should_compile/T4930.stderr 5 additions, 5 deletionstestsuite/tests/simplCore/should_compile/T4930.stderr
- testsuite/tests/simplCore/should_compile/T5298.stdout 1 addition, 1 deletiontestsuite/tests/simplCore/should_compile/T5298.stdout
- testsuite/tests/simplCore/should_compile/T7360.stderr 4 additions, 4 deletionstestsuite/tests/simplCore/should_compile/T7360.stderr
- testsuite/tests/simplCore/should_compile/T7865.stdout 4 additions, 4 deletionstestsuite/tests/simplCore/should_compile/T7865.stdout
Loading
Please register or sign in to comment