[GHC] #9661: Branchless ==# is compiled to branchy code

GHC ghc-devs at haskell.org
Fri Oct 3 17:48:37 UTC 2014


#9661: Branchless ==# is compiled to branchy code
-------------------------------------+-------------------------------------
              Reporter:  dfeuer      |            Owner:
                  Type:  bug         |           Status:  new
              Priority:  normal      |        Milestone:
             Component:  Compiler    |          Version:  7.9
            Resolution:              |         Keywords:
      Operating System:              |     Architecture:  Unknown/Multiple
  Unknown/Multiple                   |       Difficulty:  Unknown
       Type of failure:  Runtime     |       Blocked By:
  performance bug                    |  Related Tickets:
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by dfeuer):

 Replying to [comment:3 jstolarek]:

 > When you rewrite the transformation to work on the `==#` primop this
 should be the result that you get, but I don't think that you can get such
 transformation by just inlining definition of `(==)`. The problem is that
 calls to `tagToEnum#` are not currently optimized away in Core (#8317).

 I doubt this is going to make much of a difference in most cases, but
 we'll have to see (I can probably look into it tomorrow night). My
 overriding philosophy is that band-aids are bad, and band-aids that
 complicate other things are very bad. If `litEq` is currently serving
 primarily as a band-aid for #8317, I think we should rip it off and wait
 for a proper fix.

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


More information about the ghc-tickets mailing list