[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