Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : ghc-7.4
http://hackage.haskell.org/trac/ghc/changeset/55e4870d39c5267bd272423c5118527e20455b04 >--------------------------------------------------------------- commit 55e4870d39c5267bd272423c5118527e20455b04 Author: Simon Peyton Jones <[email protected]> Date: Thu Jan 12 17:17:22 2012 +0000 Fix Trac #5658: strict bindings not floated in Two changes here * The main change here is to enhance the FloatIn pass so that it can float case-bindings inwards. In particular the case bindings for array indexing. * Also change the code in Simplify, to allow a case on array indexing (ie can_fail is true) to be discarded altogether if its results are unused. Lots of new comments in PrimOp about can_fail and has_side_effects Some refactoring to share the FloatBind data structure between FloatIn and FloatOut compiler/coreSyn/CorePrep.lhs | 2 +- compiler/coreSyn/CoreUtils.lhs | 55 +++++++------ compiler/coreSyn/MkCore.lhs | 22 +++++ compiler/prelude/PrimOp.lhs | 163 ++++++++++++++++++++++----------------- compiler/simplCore/FloatIn.lhs | 121 ++++++++++++++++++----------- compiler/simplCore/FloatOut.lhs | 20 +---- compiler/simplCore/SimplEnv.lhs | 1 + compiler/simplCore/Simplify.lhs | 10 ++- 8 files changed, 236 insertions(+), 158 deletions(-) Diff suppressed because of size. To see it, use: git show 55e4870d39c5267bd272423c5118527e20455b04 _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
