[GHC] #9434: GHC.List.reverse does not fuse

David Feuer david.feuer at gmail.com
Fri Aug 15 16:46:56 UTC 2014


Yes, but I'm not sure how to do that, especially because foldl doesn't have
the phased NOINLINE that foldr does.
On Aug 15, 2014 12:45 PM, "Dan Doel" <dan.doel at gmail.com> wrote:

> Isn't this kind of thing fixed for other functions by rewriting back into
> the direct recursive definition if no fusion happens?
>
>
> On Fri, Aug 15, 2014 at 11:41 AM, David Feuer <david.feuer at gmail.com>
> wrote:
>
>> I'm having trouble when it doesn't fuse—it ends up with duplicate
>> bindings at the top level, because build gets inlined n times, and the
>> result lifted out. Nothing's *wrong* with the code, except that there are
>> multiple copies of it.
>> On Aug 15, 2014 10:58 AM, "GHC" <ghc-devs at haskell.org> wrote:
>>
>>> #9434: GHC.List.reverse does not fuse
>>>
>>> -------------------------------------+-------------------------------------
>>>               Reporter:  dfeuer      |            Owner:
>>>                   Type:  bug         |           Status:  new
>>>               Priority:  normal      |        Milestone:
>>>              Component:              |          Version:  7.9
>>>   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:              |
>>>
>>> -------------------------------------+-------------------------------------
>>>
>>> Comment (by simonpj):
>>>
>>>  Great.  Just check that when fusion ''doesn't'' take place, the result
>>> is
>>>  good. And do a `nofib` comparison for good luck. Then submit a patch.
>>>
>>>  Thanks for doing all this work on fusion, David.
>>>
>>>  Simon
>>>
>>> --
>>> Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9434#comment:2>
>>> GHC <http://www.haskell.org/ghc/>
>>> The Glasgow Haskell Compiler
>>>
>>
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs at haskell.org
>> http://www.haskell.org/mailman/listinfo/ghc-devs
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140815/9fafdade/attachment.html>


More information about the ghc-devs mailing list