[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