[commit: ghc] master: Mark zipWithAndUnzipM as INLINABLE rather than INLINE (c5d6288)

git at git.haskell.org git at git.haskell.org
Tue Oct 4 21:38:10 UTC 2016


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/c5d62883b3a7c93c28017b57f81165b6f71d9340/ghc

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

commit c5d62883b3a7c93c28017b57f81165b6f71d9340
Author: Matthew Pickering <matthewtpickering at gmail.com>
Date:   Tue Oct 4 22:36:55 2016 +0100

    Mark zipWithAndUnzipM as INLINABLE rather than INLINE
    
    It is a self-recursive function and hence a loop-breaker.


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

c5d62883b3a7c93c28017b57f81165b6f71d9340
 compiler/utils/MonadUtils.hs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler/utils/MonadUtils.hs b/compiler/utils/MonadUtils.hs
index d1c0adb..93a835e 100644
--- a/compiler/utils/MonadUtils.hs
+++ b/compiler/utils/MonadUtils.hs
@@ -93,7 +93,7 @@ zipWith4M f (x:xs) (y:ys) (z:zs) (a:as)
 
 zipWithAndUnzipM :: Monad m
                  => (a -> b -> m (c, d)) -> [a] -> [b] -> m ([c], [d])
-{-# INLINE zipWithAndUnzipM #-}
+{-# INLINABLE zipWithAndUnzipM #-}
 -- See Note [flatten_many performance] in TcFlatten for why this
 -- pragma is essential.
 zipWithAndUnzipM f (x:xs) (y:ys)



More information about the ghc-commits mailing list