[GHC] #3016: Long compile times, large memory use with static data in 6.10

GHC trac at galois.com
Fri Apr 3 07:08:30 EDT 2009


#3016: Long compile times, large memory use with static data in 6.10
-----------------------------------------------+----------------------------
    Reporter:  dons                            |        Owner:  igloo           
        Type:  bug                             |       Status:  new             
    Priority:  normal                          |    Milestone:                  
   Component:  Compiler                        |      Version:  6.10.1          
    Severity:  normal                          |   Resolution:                  
    Keywords:  static data                     |   Difficulty:  Unknown         
    Testcase:  simplCore/should_compile/T3016  |           Os:  Unknown/Multiple
Architecture:  Unknown/Multiple                |  
-----------------------------------------------+----------------------------
Changes (by simonpj):

  * testcase:  => simplCore/should_compile/T3016
  * owner:  => igloo

Comment:

 OK I fixed this bug as a part of this patch:
 {{{
 Fri Apr  3 01:46:34 PDT 2009  simonpj at microsoft.com
   * Adjust inlining heursitics
   Ignore-this: a2d6849726f6705e06941c74137bfe7e

   This patch is the result of a long series of nofib-based experiments
   to improve GHC's inlining heuristics.
 }}}
 Now compilation of the file you attached is much, much faster:
 {{{
 $ time $vpj2 Large2.hs -c -O -fforce-recomp

 real    0m29.653s
 user    0m27.935s
 sys     0m0.631s
 }}}
 Each of the 1000-odd big constants in Large2.hs expands to the product of
 a dozen or so small constants. A file of 12,000 constants combined with
 calls to `plusInteger` etc still shouldn't take as long as 30s, but still
 an improvement of two orders of magnitude should help you.

 Ian: I'll add the example as a test case
 (`simplCore/should_compile/T3116.hs`), with the idea that it'll time out
 if Bad Things happen again in the future. Can you just check that it
 doesn't time out on some architectures already; if so, make the test a bit
 smaller?  I'll reassign the bug to you for that sole purpose.  After that
 you can close it.

 Oh, the test runs slowly, so you might want not to have it in the
 validation run.

 Simon

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


More information about the Glasgow-haskell-bugs mailing list