#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