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

Reply via email to