Ticket #2670 (closed bug: fixed)
Record selectors behaving badly wrt optimisation
|Reported by:||simonmar||Owned by:||igloo|
|Type of failure:||Difficulty:||Unknown|
|Test Case:||Blocked By:|
The attached program performs much worse with HEAD as of today (and presumably also 6.10.1) than 6.8.3.
> ghc-6.8.3 --make -O2 bug.hs [1 of 1] Compiling Main ( bug.hs, bug.o ) Linking bug ... > time ./bug 1.17s real 1.17s user 0.01s system 99% ./bug > ghc-6.11 --make -O2 bug.hs [1 of 1] Compiling Main ( bug.hs, bug.o ) Linking bug ... > time ./bug 1.58s real 1.58s user 0.01s system 99% ./bug
The problem appears to be in the code for delete, GHC has duplicated two calls to next.
Also note this is a version of the code we have in eyeball/IOList.lhs which illustrates some other problems in the current optimiser (although the other problems are not regressions, which is why I'm highlighting this one).