[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