[Bug tree-optimization/96234] Sub-optimal register allocation with a signed integer literal.

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jul 20 07:11:39 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96234

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
          Component|target                      |tree-optimization
           Keywords|                            |missed-optimization
   Last reconfirmed|                            |2020-07-20

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The RA issue is just bad luck I guess.  On the GIMPLE level we can see
the main difference is signed vs. unsigned arithmetic and lack of
association.  It would probably all be solved when the last reassoc
would operate under -fwrapv assumptions.  For the unsigned case we have

(((_17 - _11) + c_7(D)) + (_14 * 1000000000)) - -(_4 * 1000000000)

(all unsigned long operands) after reassoc2 where it is odd that we
didn't figure to associate the multiplies together and factor it out.


More information about the Gcc-bugs mailing list