[GHC] #15580: Specialize min/max functions for GHC provided instances.

GHC ghc-devs at haskell.org
Thu Aug 30 14:21:25 UTC 2018


#15580: Specialize min/max functions for GHC provided instances.
-------------------------------------+-------------------------------------
           Reporter:  AndreasK       |             Owner:  (none)
               Type:  task           |            Status:  new
           Priority:  normal         |         Milestone:  8.6.1
          Component:  Compiler       |           Version:  8.4.3
           Keywords:  CodeGen        |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 In particular for Int/Word/Float/Double we should aim to provide
 branchless code where reasonable.

 Especially when using SSE we should just use `minss` instead of
 {{{
   ucomisd %xmm1,%xmm0
   jp .Lc5vv
   jbe .Lc5vw
 }}}
 which is worse in all kinds of ways.

 If someone feels like tackling this I'm happy to help with code review,
 answering questions, etc.

 I won't get around to doing it myself any time soon.

 As a starting point the instance declarations are in ghc-
 prim/GHC/Classes.hs.

 I would look into solving this via adding a new MachOP/PrimOP but maybe
 there are even better ways.

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


More information about the ghc-tickets mailing list