X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fstranal%2FWorkWrap.lhs;h=456f2f0358265c89cf80c69af2a0d6bea34a41e8;hb=a515009d89b62d6bc4fc34844db37edb5d4ef6ac;hp=101069962d9afaab187a76521d4ae516c0aa7d9b;hpb=c55bcbdea7b8122956853c90f680a59808889b95;p=ghc-hetmet.git diff --git a/compiler/stranal/WorkWrap.lhs b/compiler/stranal/WorkWrap.lhs index 1010699..456f2f0 100644 --- a/compiler/stranal/WorkWrap.lhs +++ b/compiler/stranal/WorkWrap.lhs @@ -26,7 +26,7 @@ import NewDemand ( Demand(..), StrictSig(..), DmdType(..), DmdResult(..), ) import UniqSupply ( UniqSupply, initUs_, returnUs, thenUs, mapUs, getUniqueUs, UniqSM ) import Unique ( hasKey ) -import BasicTypes ( RecFlag(..), isNonRec, Activation(..) ) +import BasicTypes ( RecFlag(..), isNonRec ) import VarEnv ( isEmptyVarEnv ) import Maybes ( orElse ) import DynFlags @@ -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: