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

--- Comment #8 from Yuri Rumyantsev <ysrumyan at gmail dot com> ---
The issue is caused by operand canonicalization, i.e. there is special
operand odering for commutative operations to have the same
representation for  a + b and b + a. If computation of second operand
requires more operations this may lead to live range increasing ( for
live variables computed by first operand). If we swap these operands
we get live range shrinking which is essential for 32-bit targets
having only few registers.

Hope it will help you to understand the problem.

2014-12-29 19:36 GMT+03:00 hjl.tools at gmail dot com
<gcc-bugzi...@gcc.gnu.org>:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64434
>
> --- Comment #7 from H.J. Lu <hjl.tools at gmail dot com> ---
> r216728 generates much longer code sequences.  Where does it come from?
> Does -m64 also generate longer code sequences?
>
> --
> You are receiving this mail because:
> You reported the bug.

Reply via email to