[Bug rtl-optimization/69052] [6 Regression] Performance regression after r229402.
amker at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 27 12:43:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69052
--- Comment #11 from amker at gcc dot gnu.org ---
(In reply to Ilya Enkovich from comment #10)
> (In reply to amker from comment #9)
> > I know little about x86, is it because of generation of non-canonical rtl
> > expression after this change?
> >
> > Another question for this case is: Is it because operand ordering that
> > inv_can_prop_to_addr_use failed to verify the result insn as a valid one?
> > If so, is it because of non-canonical rtl expressions?
>
> In i386 address expression only the first operand of PLUS may be another
> PLUS. Thus (r1 + r2) + CONST is a valid address but r1 + (r2 + CONST) is
> not. Thus when you propagate a register you may need to reorder operands.
I see, I will check what combine does here. Maybe it's just an overlook in
inv_can_prop_to_addr_use, which reminds me if other targets like AArch64 are
also affected.
Thanks.
More information about the Gcc-bugs
mailing list