Fri Dec 11 09:39:20 PST 2009 [email protected]
* Use full equality for CSE
Ignore-this: c6d73febf652aa34dc1197a49e599ee
In CSE we were getting lots of apprarently-unequal expressions with
the same hash code. In fact they were perfectly equal -- but we were
using a cheap-and-cheerful equality tests for CoreExpr that said False
for any lambda expression!
This patch adds a proper equality test for Core, with alpha-renaming.
It's easy to do, and will avoid silly cases of CSE failing to fire.
We should get less of this:
WARNING: file compiler/simplCore/CSE.lhs line 326
extendCSEnv: long list, length 18
from a compiler built with -DDEBUG
M ./compiler/coreSyn/CoreUtils.lhs -1 +49
M ./compiler/simplCore/CSE.lhs -8 +12
M ./compiler/types/Coercion.lhs -1 +5
M ./compiler/types/Type.lhs -3 +7
View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20091211173920-1287e-50d62ecf52bc31ef0d807c6af4a0855f3b7dc608.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc