[GHC] #8199: Get rid of HEAP_ALLOCED

GHC ghc-devs at haskell.org
Fri Aug 30 03:45:02 UTC 2013


#8199: Get rid of HEAP_ALLOCED
----------------------------+----------------------------------------------
        Reporter:  ezyang   |            Owner:  ezyang
            Type:  feature  |           Status:  new
  request                   |        Milestone:  7.10.1
        Priority:  normal   |          Version:  7.7
       Component:           |         Keywords:
  Compiler                  |     Architecture:  Unknown/Multiple
      Resolution:           |       Difficulty:  Project (more than a week)
Operating System:           |       Blocked By:
  Unknown/Multiple          |  Related Tickets:
 Type of failure:           |
  None/Unknown              |
       Test Case:           |
        Blocking:           |
----------------------------+----------------------------------------------

Comment (by ezyang):

 Preliminary performance results (not all of nofib was compiling when I did
 these):

 {{{
 --------------------------------------------------------------------------------
         Program           Size    Allocs   Runtime   Elapsed  TotalMem
 --------------------------------------------------------------------------------
            ansi          +5.1%     +0.0%      0.00      0.00     +0.0%
            atom          +5.1%     +0.0%     -3.5%     -3.1%     +0.0%
      bernouilli          +5.1%     +0.0%     +1.7%     +1.7%     +0.0%
          exp3_8          +5.1%     +0.0%     +0.0%     +0.0%     +0.0%
     gen_regexps          +5.0%     +0.0%      0.00      0.00     +0.0%
       integrate          +5.1%     +0.0%      0.19      0.20     +0.0%
           kahan          +4.9%     +0.0%     +0.0%     -0.7%     +0.0%
       paraffins          +5.0%     +0.0%      0.11      0.11     +0.0%
          primes          +5.1%     +0.0%      0.07      0.07     +0.0%
          queens          +5.1%     +0.0%      0.02      0.02     +0.0%
            rfib          +5.1%     +0.0%      0.02      0.02     +0.0%
             tak          +5.1%     +0.0%      0.02      0.02     +0.0%
    wheel-sieve1          +5.1%     +0.0%     +0.5%     +0.0%     +0.0%
    wheel-sieve2          +5.0%     +0.0%     -4.8%     -4.8%     +0.0%
            x2n1          +5.1%     +0.0%      0.01      0.01     +0.0%
 --------------------------------------------------------------------------------
             Min          +4.9%     +0.0%     -4.8%     -4.8%     +0.0%
             Max          +5.1%     +0.0%     +1.7%     +1.7%     +0.0%
  Geometric Mean          +5.0%     +0.0%     -1.0%     -1.2%     +0.0%
 }}}

 Binary size bloat comes from all of the extra static indirection tables
 nonsense; I'm sure we can squeeze it down a bit. Some pretty good
 improvements in some cases. What I didn't see was any massive slowdowns
 like I am seeing in ghc-stage2. So I ran nofib again -dynamic:

 {{{
 --------------------------------------------------------------------------------
         Program           Size    Allocs   Runtime   Elapsed  TotalMem
 --------------------------------------------------------------------------------
            ansi          +5.9%     +0.0%      0.00      0.00     +0.0%
            atom          +4.5%     +0.0%     -3.4%     -3.8%     +0.0%
      bernouilli          +5.3%     +0.0%     +0.0%     +0.0%     +0.0%
          exp3_8          +5.6%     +0.0%     +0.0%     +0.0%     +0.0%
     gen_regexps          +3.9%     +0.0%      0.00      0.00     +0.0%
       integrate          +4.6%     +0.0%     -2.7%     -2.7%     +0.0%
           kahan          +5.1%     +0.0%     +8.4%     +8.4%     +0.0%
       paraffins          +2.9%     +0.0%      0.11      0.11     +0.0%
          primes          +5.5%     +0.0%      0.07      0.07     +0.0%
          queens          +5.0%     +0.0%      0.02      0.02     +0.0%
            rfib          +6.0%     +0.0%      0.02      0.02     +0.0%
             tak          +5.5%     +0.0%      0.01      0.01     +0.0%
    wheel-sieve1          +4.4%     +0.0%     -2.4%     -2.4%     +0.0%
    wheel-sieve2          +3.7%     +0.0%     -7.1%     -6.3%     +2.1%
            x2n1          +4.1%     +0.0%      0.01      0.01     +0.0%
 --------------------------------------------------------------------------------
             Min          +2.9%     +0.0%     -7.1%     -6.3%     +0.0%
             Max          +6.0%     +0.0%     +8.4%     +8.4%     +2.1%
  Geometric Mean          +4.8%     +0.0%     -1.1%     -1.1%     +0.1%
 }}}

 kahan slows down, but not by much; certainly not the order of magnitude I
 was seeing in ghc-stage2. I still don't really know what's up, so perhaps
 the massive ghc-stage2 slowdown is a correctness bug somewhere, or perhaps
 pessimal behavior when a lot of modules are loaded. Ugh! The worst kind of
 bug.

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




More information about the ghc-tickets mailing list