[commit: ghc] wip/T14068: Revert "If there is a artificial no-inline-pragma, do not bother creating an unfolding" (f04fdcb)

git at git.haskell.org git at git.haskell.org
Fri Jan 5 21:16:37 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/T14068
Link       : http://ghc.haskell.org/trac/ghc/changeset/f04fdcbc51fffa36619157defb105dae461da4b7/ghc

>---------------------------------------------------------------

commit f04fdcbc51fffa36619157defb105dae461da4b7
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Tue Nov 7 17:48:42 2017 -0500

    Revert "If there is a artificial no-inline-pragma, do not bother creating an unfolding"
    
    This reverts commit 1d811710f9681693f3dcdd647a1231dcebc8bce1.


>---------------------------------------------------------------

f04fdcbc51fffa36619157defb105dae461da4b7
 compiler/basicTypes/BasicTypes.hs | 8 +-------
 compiler/simplCore/Simplify.hs    | 4 +---
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/compiler/basicTypes/BasicTypes.hs b/compiler/basicTypes/BasicTypes.hs
index 3e5fbfe..a866153 100644
--- a/compiler/basicTypes/BasicTypes.hs
+++ b/compiler/basicTypes/BasicTypes.hs
@@ -88,7 +88,7 @@ module BasicTypes(
         InlineSpec(..), noUserInlineSpec,
         InlinePragma(..), defaultInlinePragma, alwaysInlinePragma,
         neverInlinePragma, dfunInlinePragma,
-        isDefaultInlinePragma, isNeverInlinePragma,
+        isDefaultInlinePragma,
         isInlinePragma, isInlinablePragma, isAnyInlinePragma,
         inlinePragmaSpec, inlinePragmaSat,
         inlinePragmaActivation, inlinePragmaRuleMatchInfo,
@@ -1352,12 +1352,6 @@ isDefaultInlinePragma (InlinePragma { inl_act = activation
                                     , inl_inline = inline })
   = noUserInlineSpec inline && isAlwaysActive activation && isFunLike match_info
 
-isNeverInlinePragma :: InlinePragma -> Bool
-isNeverInlinePragma (InlinePragma { inl_act = activation
-                                  , inl_rule = match_info
-                                  , inl_inline = inline })
-  = noUserInlineSpec inline && isNeverActive activation && isFunLike match_info
-
 isInlinePragma :: InlinePragma -> Bool
 isInlinePragma prag = case inl_inline prag of
                         Inline -> True
diff --git a/compiler/simplCore/Simplify.hs b/compiler/simplCore/Simplify.hs
index b576e8a..532b7ee 100644
--- a/compiler/simplCore/Simplify.hs
+++ b/compiler/simplCore/Simplify.hs
@@ -41,7 +41,7 @@ import CoreOpt          ( pushCoTyArg, pushCoValArg
 import Rules            ( mkRuleInfo, lookupRule, getRules )
 import Demand           ( mkClosedStrictSig, topDmd, exnRes )
 import BasicTypes       ( TopLevelFlag(..), isNotTopLevel, isTopLevel,
-                          RecFlag(..), Arity, isNeverInlinePragma )
+                          RecFlag(..), Arity )
 import MonadUtils       ( mapAccumLM, liftIO )
 import Maybes           (  orElse )
 import Control.Monad
@@ -3263,8 +3263,6 @@ simplLetUnfolding env top_lvl cont_mb id new_rhs unf
   = simplStableUnfolding env top_lvl cont_mb id unf
   | isExitJoinId id
   = return noUnfolding -- see Note [Do not inline exit join points]
-  | isNeverInlinePragma (idInlinePragma id)
-  = return noUnfolding -- Do not bother creating one if we never inline anyways
   | otherwise
   = mkLetUnfolding (seDynFlags env) top_lvl InlineRhs id new_rhs
 



More information about the ghc-commits mailing list