[GHC] #9781: Make list monad operations fuse
GHC
ghc-devs at haskell.org
Wed Nov 12 06:55:22 UTC 2014
#9781: Make list monad operations fuse
-------------------------------------+-------------------------------------
Reporter: dfeuer | Owner: dfeuer
Type: task | Status: closed
Priority: normal | Milestone: 7.10.1
Component: Core | Version: 7.9
Libraries | Keywords:
Resolution: fixed | Architecture: Unknown/Multiple
Operating System: | Difficulty: Unknown
Unknown/Multiple | Blocked By:
Type of failure: Runtime | Related Tickets:
performance bug |
Test Case: |
Blocking: |
Differential Revisions: Phab:D455 |
-------------------------------------+-------------------------------------
Comment (by dfeuer):
Replying to [comment:7 schyler]:
> It would be nice to understand why the `mapM` change did anything at
all. That's an enormous difference. I wonder how much real code in the
wild has similar properties (is it a lack of INLINEing?)
I believe it's either a lack of inlining or an unfortunate effect of full
laziness. I haven't tried to dig into that particular one so deeply. Short
cut fusion is great stuff, but it's on the finicky side; writing library
functions so they don't themselves rely on it seems to be a good idea in
many cases. The inliner will be less likely to over-estimate their cost, I
believe.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9781#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list