[GHC] #9246: GHC generates poor code for repeated uses of min/max

GHC ghc-devs at haskell.org
Sun Jun 29 19:37:31 UTC 2014


#9246: GHC generates poor code for repeated uses of min/max
--------------------------------------------+------------------------------
        Reporter:  arotenberg               |            Owner:
            Type:  feature request          |           Status:  new
        Priority:  normal                   |        Milestone:  7.10.1
       Component:  Compiler                 |          Version:  7.8.2
      Resolution:                           |         Keywords:
Operating System:  Windows                  |     Architecture:  x86_64
 Type of failure:  Runtime performance bug  |  (amd64)
       Test Case:                           |       Difficulty:  Unknown
        Blocking:                           |       Blocked By:
                                            |  Related Tickets:  #6135
--------------------------------------------+------------------------------

Comment (by arotenberg):

 On the contrary, replacing the NOINLINEs with INLINEs results in
 essentially the original Core, local lambdas and all. I explicitly put the
 NOINLINEs in because that was the only way I could find to force GHC to
 not expand the branches and add the unnecessary lambdas and lazy lets.

 Perhaps this issue should be split into two tickets - something like "Add
 branchless min/max primops" and "Min/max-like functions cause unnecessary
 closure creation"?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9246#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list