diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2020-10-08 13:01:47 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2020-10-13 10:42:56 +0100 |
commit | a2f637e0df06973e6a7c33034c3bd94251766da5 (patch) | |
tree | f4c4381846a41891639fc8b5f9e2a9be776d03c8 /testsuite/tests/stranal/should_compile/T16029.stdout | |
parent | 0a5f29185921cf2af908988ab3608602bcb40290 (diff) | |
download | haskell-a2f637e0df06973e6a7c33034c3bd94251766da5.tar.gz |
Fix some missed opportunities for preInlineUnconditionallywip/T18815
There are two signficant changes here:
* Ticket #18815 showed that we were missing some opportunities for
preInlineUnconditionally. The one-line fix is in the code for
GHC.Core.Opt.Simplify.Utils.preInlineUnconditionally, which now
switches off only for INLINE pragmas. I expanded
Note [Stable unfoldings and preInlineUnconditionally] to explain.
* When doing this I discovered a way in which preInlineUnconditionally
was occasionally /too/ eager. It's all explained in
Note [Occurrences in stable unfoldings] in GHC.Core.Opt.OccurAnal,
and the one-line change adding markAllMany to occAnalUnfolding.
I also got confused about what NoUserInline meant, so I've renamed
it to NoUserInlinePrag, and changed its pretty-printing slightly.
That led to soem error messate wibbling, and touches quite a few
files, but there is no change in functionality.
I did a nofib run. As expected, no significant changes.
Program Size Allocs
----------------------------------------
sphere -0.0% -0.4%
----------------------------------------
Min -0.0% -0.4%
Max -0.0% +0.0%
Geometric Mean -0.0% -0.0%
I'm allowing a max-residency increase for T10370, which seems
very irreproducible. (See comments on !4241.) There is always
sampling error for max-residency measurements; and in any case
the change shows up on some platforms but not others.
Metric Increase:
T10370
Diffstat (limited to 'testsuite/tests/stranal/should_compile/T16029.stdout')
-rw-r--r-- | testsuite/tests/stranal/should_compile/T16029.stdout | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/testsuite/tests/stranal/should_compile/T16029.stdout b/testsuite/tests/stranal/should_compile/T16029.stdout index 59507ee4ce..2d1f2106f3 100644 --- a/testsuite/tests/stranal/should_compile/T16029.stdout +++ b/testsuite/tests/stranal/should_compile/T16029.stdout @@ -3,9 +3,9 @@ = \ (dt [Occ=Once1!] :: Int) (dt [Occ=Once1!] :: Int) -> :: GHC.Prim.Int# -> GHC.Prim.Int# = \ (ww :: GHC.Prim.Int#) -> -g2 [InlPrag=NOUSERINLINE[2]] :: T -> Int -> Int +g2 [InlPrag=[2]] :: T -> Int -> Int Tmpl= \ (w [Occ=Once1!] :: T) (w1 [Occ=Once1!] :: Int) -> = \ (w :: T) (w1 :: Int) -> -g1 [InlPrag=NOUSERINLINE[2]] :: S -> Int -> Int +g1 [InlPrag=[2]] :: S -> Int -> Int Tmpl= \ (w [Occ=Once1!] :: S) (w1 [Occ=Once1!] :: Int) -> = \ (w :: S) (w1 :: Int) -> |