#3027: Specialisation rules fail because dictionary projections do not match
----------------------------------------------+-----------------------------
    Reporter:  [email protected]  |        Owner:                  
        Type:  bug                            |       Status:  closed          
    Priority:  normal                         |    Milestone:                  
   Component:  Compiler                       |      Version:  6.8.2           
    Severity:  normal                         |   Resolution:  fixed           
    Keywords:                                 |   Difficulty:  Unknown         
    Testcase:                                 |           Os:  Unknown/Multiple
Architecture:  Unknown/Multiple               |  
----------------------------------------------+-----------------------------
Comment (by [email protected]):

 Unfortunately performance tuning remains something of a black art for me.
 Here are timing figures for the real code in question, with attempted (but
 failed) specialisation in 6.8.2, and actual specialisation in 6.10.1:

  ghc-6.8.2: 11.88s

  ghc-6.10.1: 14.75s

 Later, having profiled this same code, and hit two hotspots with a small
 algorithmic improvement, and some INLINE pragmas, I now get the following
 comparison:

  ghc-6.8.2: 2.71s

  ghc-6.10.1: 2.92s

 Big improvement overall, which I'm very happy with, but 6.8.2 still wins.
 Make a tiny change to the outer loop of this version, basically to remove
 a filter and thus do more work:

  ghc-6.8.2: 16.18s

  ghc-6.10.1: 11.55s

 and suddenly 6.10.1 overtakes 6.8.2.  So the newer ghc oscillates between
 25% faster, and 25% slower, on very slight variations of the same program.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3027#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to