#7450: Regression in optimisation time of functions with many patterns (6.12 to
  Reporter:  iustin                        |          Owner:                  
      Type:  bug                           |         Status:  new             
  Priority:  normal                        |      Milestone:                  
 Component:  Compiler                      |        Version:  7.6.1           
Resolution:                                |       Keywords:                  
        Os:  Unknown/Multiple              |   Architecture:  Unknown/Multiple
   Failure:  Compile-time performance bug  |     Difficulty:  Unknown         
  Testcase:                                |      Blockedby:                  
  Blocking:                                |        Related:                  

Comment(by iustin):

 Replying to [comment:2 simonpj]:
 > It may be a dup of #7258, but if it's true that the issue is solely
 concerned with `deriving(Read)` that would localise it much more than
 saying it's to do with `DynFlags.lhs`.
 > So if I understand it, simply having your data type with lots of
 constructors and `deriving(Read)` is enough to trigger this non-linear

 Indeed. The following conditions seem to be required:

  * many constructors (> ~100)
  * constructors should be record constructors, not normal ones
  * optimisations must be turned on

 For normal constructors, I can't trigger it with even ~1500 constructors
 (it's a bit less than linear, but still very acceptable, e.g. 30s for 1600
 normal constructors versus 259s for 800 record constructors).

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

Glasgow-haskell-bugs mailing list

Reply via email to