[GHC] #9369: Data.List.unfoldr does not fuse and is not inlined.
GHC
ghc-devs at haskell.org
Fri Sep 5 18:36:01 UTC 2014
#9369: Data.List.unfoldr does not fuse and is not inlined.
-------------------------------------+-------------------------------------
Reporter: dfeuer | Owner:
Type: bug | Status: patch
Priority: normal | Milestone: 7.8.4
Component: | Version: 7.8.3
libraries/base | Keywords:
Resolution: | Architecture: Unknown/Multiple
Operating System: | Difficulty: Easy (less than 1
Unknown/Multiple | hour)
Type of failure: Runtime | Blocked By:
performance bug | Related Tickets:
Test Case: |
Blocking: |
Differential Revisions: |
-------------------------------------+-------------------------------------
Changes (by dfeuer):
* status: new => patch
Comment:
This took long enough to work through. I decided in the end that we
shouldn't use any rules whatsoever for `unfoldr`, but should instead just
`INLINE` it. A detailed explanation of my reasoning is included in the
patch, but it comes down to two things:
1. Concerns about rules inlining `unfoldr` too early, and
2. The importance of inlining `unfoldr` whether it fuses or not to
optimize common uses.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9369#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list