[Bug rtl-optimization/39543] [4.4 Regression] Reload failure on mplayer from SVN
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Mar 24 12:54:00 GMT 2009
------- Comment #2 from jakub at gcc dot gnu dot org 2009-03-24 12:54 -------
The reason for forcing the MEM addresses in "m"/"=m" into register is:
/* By passing constant addresses through registers
we get a chance to cse them. */
if (! cse_not_expected && CONSTANT_P (x) && CONSTANT_ADDRESS_P (x))
x = force_reg (Pmode, x);
in memory_address. On a simple s0[0] = 0; s0[4] = 0; s0[8] = 0; s0[12] = 0;
the addresses are propagated back into the MEMs during fwprop1 (or during
combine for -fno-forward-propagate), but this for some reason doesn't happen
for the asm operands.
Either we need to disable this kind of forcing into register for (constant)
memory operands, or better find out and fix why neither fwprop nor combiner
merges the memory operands back.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39543
More information about the Gcc-bugs
mailing list