summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2018-02-21 00:03:27 -0500
committerJoachim Breitner <mail@joachim-breitner.de>2018-02-21 00:03:27 -0500
commit20b00bd9fcb5e0e5b115f0796f2b59005856234d (patch)
tree944b233fb59dbe5571082a8bde37fdd81b4b02e5
parent1f3da3b5bea004e75f9389796a2a537007291463 (diff)
downloadhaskell-wip/T14068-inline.tar.gz
Revert "Prevent inlining of loopified programs"wip/T14068-inline
This reverts commit b4ab3a5f1fa051be9c5689f7ecef16458b2d700d, to get new measurements on how loopification fares with inlining enabled.
-rw-r--r--compiler/coreSyn/CoreOpt.hs8
-rw-r--r--compiler/stranal/WorkWrap.hs1
2 files changed, 1 insertions, 8 deletions
diff --git a/compiler/coreSyn/CoreOpt.hs b/compiler/coreSyn/CoreOpt.hs
index d97a015565..57812e4c8a 100644
--- a/compiler/coreSyn/CoreOpt.hs
+++ b/compiler/coreSyn/CoreOpt.hs
@@ -675,14 +675,8 @@ loopificationJoinPointBinding_maybe bndr rhs
zapFragileIdInfo $
localiseId $
bndr
-
-- RULES etc stay with bindr'
- -- Also, previously, the function was recursive, and hence not inlineable.
- -- To tread with caution, let's keep it this way
- bndr' = (`setIdUnfolding` noUnfolding) $
- (`setInlinePragma` neverInlinePragma) $
- (`setIdOccInfo` noOccInfo) $
- bndr
+ bndr' = zapIdTailCallInfo bndr
in Just (bndr', join_bndr, mkLams bndrs body)
| otherwise
diff --git a/compiler/stranal/WorkWrap.hs b/compiler/stranal/WorkWrap.hs
index 4eb2f1016e..ac8798e56e 100644
--- a/compiler/stranal/WorkWrap.hs
+++ b/compiler/stranal/WorkWrap.hs
@@ -479,7 +479,6 @@ splitFun dflags fam_envs fn_id fn_info wrap_dmds res_info rhs
work_act = case work_inline of
-- See Note [Activation for workers]
NoInline -> inl_act inl_prag
- NoUserInline | isNeverActive (inl_act inl_prag) -> NeverActive
_ -> wrap_act
work_prag = InlinePragma { inl_src = SourceText "{-# INLINE"
, inl_inline = work_inline