[GHC] #1600: Optimisation: CPR the results of IO

GHC ghc-devs at haskell.org
Tue Jan 14 09:45:04 UTC 2014


#1600: Optimisation: CPR the results of IO
-------------------------------------+-------------------------------------
        Reporter:  simonmar          |            Owner:  nomeata
            Type:  task              |           Status:  new
        Priority:  lowest            |        Milestone:  7.6.2
       Component:  Compiler          |          Version:  6.6.1
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  Runtime           |       Difficulty:  Moderate (less
  performance bug                    |  than a day)
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:  #8598
-------------------------------------+-------------------------------------

Comment (by nomeata):

 Fixed the `transform` issue (when analysing a complex case expression
 where we do the scrunitee first to feed nested CPR information into the
 pattern match variable, I was not making sure that the case binder gets at
 least a flat CPR property, even if the scrunitee has none), and we are
 finally where Simon expected nested CPR to be: No increased allocations
 any more (or at least none that are not surpassed by the gains). Still a
 very small effect, though.

 {{{
 --------------------------------------------------------------------------------
         Program           Size    Allocs   Runtime   Elapsed  TotalMem
 --------------------------------------------------------------------------------
            ansi          +0.3%     -0.1%      0.00      0.00     +0.0%
          awards          +0.3%     -0.1%      0.00      0.00     +0.0%
       compress2          +0.6%     -0.8%      0.11      0.11     -8.0%
        fibheaps          +0.3%     -0.3%      0.03      0.03     +0.0%
          gamteb          +0.4%     -0.2%      0.04      0.04     +0.0%
            grep          +0.3%     -0.1%      0.00      0.00     +0.0%
             hpg          +0.4%     -3.0%      0.13      0.13     +0.0%
           infer          +0.3%     -1.2%      0.03      0.03     +0.0%
    k-nucleotide          +0.2%     -6.9%     -0.7%     -0.5%     +0.0%
        maillist          +0.4%     -0.8%      0.04      0.04     -4.2%
         mkhprog          +0.4%     -0.3%      0.00      0.00     +0.0%
             pic          +0.3%     -0.7%      0.00      0.00     +0.0%
          pretty          +0.4%     -0.1%      0.00      0.00     +0.0%
            rfib          +0.3%     -0.2%      0.01      0.01     +0.0%
             scc          +0.3%     -0.1%      0.00      0.00     +0.0%
   spectral-norm          +0.4%     -0.1%     +0.0%     +0.0%     +0.0%
          sphere          +0.4%     -4.7%      0.04      0.04     +0.0%
          symalg          +0.3%     -0.1%      0.01      0.01     +0.0%
             tak          +0.3%     -0.3%      0.01      0.01     +0.0%
 --------------------------------------------------------------------------------
             Min          +0.2%     -6.9%     -5.3%    -27.3%     -8.0%
             Max          +0.7%     +0.0%     +1.4%     +1.4%    +50.0%
  Geometric Mean          +0.3%     -0.2%     -0.7%     -2.3%     +0.2%
 }}}

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


More information about the ghc-tickets mailing list