http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56223



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



           What    |Removed                     |Added

----------------------------------------------------------------------------

           Keywords|                            |missed-optimization

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2013-02-06

     Ever Confirmed|0                           |1



--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-06 
12:14:54 UTC ---

Related support is in tree-ssa-phiopt.c which simply doesn't consider this

more complex pattern.  A changed pattern detection could detect





  if (v >= 0)

    use +v

    ...

  else

    use -v

    ...



  v unused outside the if



and replace it with



  v' = abs (v);

  if (v >= 0)

    use v'

    ...

  else

    use v'

    ...



and hope for further optimizations to detect the equivalences.



Or special-case a single addition / subtraction statement here.

Reply via email to