Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/29edeadbc7d974232f67cdc4fd05283b35721ae0 >--------------------------------------------------------------- commit 29edeadbc7d974232f67cdc4fd05283b35721ae0 Author: Simon Peyton Jones <[email protected]> Date: Mon Jul 25 09:33:09 2011 +0100 Re-engineer exprIsConApp_maybe (fixes Trac #5327) The problem with #5327 was like this: let x = I# 0 `cast` co1 in ...(case x `cast` co2 of I# y -> blah)... The two casts cancelled out, but exprIsConApp_maybe couldn't see that. This patch makes it simpler, faster, and more effective. (Incidentally, usually 'x' would be inlined, in #5327 it wasn't because of an INLINEABLE pragma and the lone-variable thing. Instead of fiddling with alrady-delicate code, I just made exprIsConApp_maybe better.) compiler/coreSyn/CoreUnfold.lhs | 153 +++++++++++++++++++-------------------- 1 files changed, 76 insertions(+), 77 deletions(-) Diff suppressed because of size. To see it, use: git show 29edeadbc7d974232f67cdc4fd05283b35721ae0 _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
