[commit: ghc] master: Make FloatOut/SetLevels idemoptent on bottoming functions (fb9ae28)

git at git.haskell.org git at git.haskell.org
Mon Mar 6 15:20:55 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/fb9ae288088a3eabc4e1bb4e86fa473a3881d2e2/ghc

>---------------------------------------------------------------

commit fb9ae288088a3eabc4e1bb4e86fa473a3881d2e2
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Fri Mar 3 16:10:06 2017 +0000

    Make FloatOut/SetLevels idemoptent on bottoming functions
    
    This fixes Trac #13369.  It turned out that I really had got the
    bottoming-float code wrong, again.  The new story is explained in
    Note [Bottoming floats], esp item (3), and Note [Floating from a RHS].
    
    I didn't make a regression test; it's hard to to so.
    
    Nofib result are good
    
    --------------------------------------------------------------------------------
            Program           Size    Allocs   Runtime   Elapsed  TotalMem
    --------------------------------------------------------------------------------
             banner          -2.2%     -4.6%      0.00      0.00     +0.0%
               bspt          -1.3%     -1.6%      0.01      0.01     +0.0%
          cacheprof          -1.8%     -0.3%     +3.7%     +3.7%     -0.9%
       digits-of-e2          -1.0%     -1.5%     -0.5%     -0.5%     +0.0%
             expert          -1.3%     -0.2%      0.00      0.00     +0.0%
             n-body          -1.1%     -0.2%     +0.1%     +0.1%     +0.0%
            veritas          -2.9%     -0.1%      0.00      0.00     +0.0%
    --------------------------------------------------------------------------------
                Min          -2.9%     -4.6%     -7.4%     -7.4%    -19.8%
                Max          -1.0%     +0.0%     +5.2%     +5.1%    +10.0%
     Geometric Mean          -1.2%     -0.1%     +0.5%     +0.5%     -0.1%
    
    I /think/ all this is due to this error-floating change; but it's possible
    that some was due to commit "Fix CSE (again) on literal strings" a couple
    of commits earlier.


>---------------------------------------------------------------

fb9ae288088a3eabc4e1bb4e86fa473a3881d2e2
 compiler/simplCore/SetLevels.hs                    | 166 +++++++++++++--------
 .../tests/simplCore/should_compile/T13143.stderr   |  27 ++--
 2 files changed, 117 insertions(+), 76 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc fb9ae288088a3eabc4e1bb4e86fa473a3881d2e2


More information about the ghc-commits mailing list