[GHC] #10829: Simplification in the RHS of rules

GHC ghc-devs at haskell.org
Tue Sep 15 16:42:10 UTC 2015


#10829: Simplification in the RHS of rules
-------------------------------------+-------------------------------------
        Reporter:  afarmer           |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:  7.10.3
       Component:  Compiler          |                 Version:  7.10.2
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:  10528             |  Differential Revisions:  D1246
-------------------------------------+-------------------------------------
Changes (by afarmer):

 * differential:   => D1246


Comment:

 Alright, I used the 7.10.2 branch and cherry picked
 bc4b64ca5b99bff6b3d5051b57cb2bc52bd4c841 (SPJ's "Do not inline or apply
 rules on LHS of rules") as my nofib base. My patch is in D1246. I used the
 following nofib command:

 {{{
 make clean && make boot && make -k mode=slow 2>&1 NoFibRuns=30
 }}}

 (as an aside, what does the `-k` do? It was recommended without comment on
 the nofib wiki page)

 Full nofib results are attached.

 To summarize, there was more of a change than I expected, but it seems
 positive, which was also unexpected. See below for Runtime/Elapsed/Total
 Mem. Binary Sizes and Allocations were unchanged. Average compile time
 dropped 3.1%, which was also surprising.

 Given the surprises, I'm going to re-run on another machine just to check.
 I didn't dig into any of the outliers to see what the Core looked like.

 Programs with more than 1% change:

 {{{
 --------------------------------------------------------------------------------
         Program           Size    Allocs   Runtime   Elapsed  TotalMem
 --------------------------------------------------------------------------------
            ansi           0.0%      0.0%     -1.3%     -1.3%      0.0%
    binary-trees           0.0%      0.0%     -3.1%     -3.2%      0.0%
       cacheprof           0.0%     -0.1%     -2.6%     -2.7%     +2.2%
  fannkuch-redux           0.0%      0.0%     -1.5%     -1.5%      0.0%
           fasta           0.0%      0.0%     -2.3%     -2.4%      0.0%
        fibheaps           0.0%      0.0%     -2.5%     -2.5%      0.0%
          fulsom           0.0%      0.0%     0.181     -6.2%     -0.2%
          hidden           0.0%      0.0%     -2.2%     -2.6%      0.0%
             ida           0.0%      0.0%     +2.4%     +2.4%      0.0%
         knights           0.0%      0.0%     -6.4%     -6.4%      0.0%
        maillist           0.0%     +0.0%     0.050     +1.8%     +1.0%
      multiplier           0.0%      0.0%     -1.4%     -1.5%      0.0%
          n-body           0.0%      0.0%     -2.9%     -3.0%      0.0%
        pidigits           0.0%      0.0%     -3.5%     -3.7%      0.0%
           power           0.0%      0.0%     -2.0%     -2.1%      0.0%
          primes           0.0%      0.0%     -1.7%     -1.6%      0.0%
          queens           0.0%      0.0%     +1.9%     +1.8%      0.0%
 reverse-complem           0.0%      0.0%     -2.2%     -2.9%      0.0%
             scs           0.0%      0.0%     -5.1%     -5.2%      0.0%
            wang           0.0%      0.0%     +1.3%     +1.4%      0.0%
 --------------------------------------------------------------------------------
             Min           0.0%     -0.1%     -6.4%     -6.4%     -0.2%
             Max           0.0%     +0.0%     +2.4%     +2.4%     +2.2%
  Geometric Mean          -0.0%     -0.0%     -0.8%     -0.8%     +0.0%
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10829#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list