X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fstranal%2FWorkWrap.lhs;h=456f2f0358265c89cf80c69af2a0d6bea34a41e8;hb=526a19e90100eadb36185f3bd2c6ac263b7d25ad;hp=29702cf9f3289c3a972c7d68d55f782a8a7d0b59;hpb=1375c0a78d6e786fa70e483597f93143baa5d65a;p=ghc-hetmet.git diff --git a/compiler/stranal/WorkWrap.lhs b/compiler/stranal/WorkWrap.lhs index 29702cf..456f2f0 100644 --- a/compiler/stranal/WorkWrap.lhs +++ b/compiler/stranal/WorkWrap.lhs @@ -153,6 +153,10 @@ wwExpr (Note note expr) = wwExpr expr `thenUs` \ new_expr -> returnUs (Note note new_expr) +wwExpr (Cast expr co) + = wwExpr expr `thenUs` \ new_expr -> + returnUs (Cast new_expr co) + wwExpr (Let bind expr) = wwBind bind `thenUs` \ intermediate_bind -> wwExpr expr `thenUs` \ new_expr -> @@ -313,7 +317,7 @@ splitThunk transforms like this: Now simplifier will transform to case x-rhs of - I# a -> let x* = I# b + I# a -> let x* = I# a in body which is what we want. Now suppose x-rhs is itself a case: