diff options
Diffstat (limited to 'compiler/GHC/Core/Unfold/Make.hs')
| -rw-r--r-- | compiler/GHC/Core/Unfold/Make.hs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/compiler/GHC/Core/Unfold/Make.hs b/compiler/GHC/Core/Unfold/Make.hs index 84cd5168db..e911d722ee 100644 --- a/compiler/GHC/Core/Unfold/Make.hs +++ b/compiler/GHC/Core/Unfold/Make.hs @@ -11,7 +11,7 @@ module GHC.Core.Unfold.Make , mkInlineUnfolding , mkInlineUnfoldingWithArity , mkInlinableUnfolding - , mkWwInlineRule + , mkWrapperUnfolding , mkCompulsoryUnfolding , mkCompulsoryUnfolding' , mkDFunUnfolding @@ -78,12 +78,15 @@ mkDFunUnfolding bndrs con ops , df_args = map occurAnalyseExpr ops } -- See Note [Occurrence analysis of unfoldings] -mkWwInlineRule :: SimpleOpts -> CoreExpr -> Arity -> Unfolding -mkWwInlineRule opts expr arity +mkWrapperUnfolding :: SimpleOpts -> CoreExpr -> Arity -> Unfolding +-- Make the unfolding for the wrapper in a worker/wrapper split +-- after demand/CPR analysis +mkWrapperUnfolding opts expr arity = mkCoreUnfolding InlineStable True - (simpleOptExpr opts expr) - (UnfWhen { ug_arity = arity, ug_unsat_ok = unSaturatedOk - , ug_boring_ok = boringCxtNotOk }) + (simpleOptExpr opts expr) + (UnfWhen { ug_arity = arity + , ug_unsat_ok = unSaturatedOk + , ug_boring_ok = boringCxtNotOk }) mkWorkerUnfolding :: SimpleOpts -> (CoreExpr -> CoreExpr) -> Unfolding -> Unfolding -- See Note [Worker/wrapper for INLINABLE functions] in GHC.Core.Opt.WorkWrap |
