Skip to content
  • Simon Peyton Jones's avatar
    Fix Trac #5658: strict bindings not floated in · 3beb1a83
    Simon Peyton Jones authored
    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
    3beb1a83