[Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store motion

belyshev at depni dot sinp dot msu dot ru gcc-bugzilla@gcc.gnu.org
Sun Jan 23 14:36:00 GMT 2005


------- Additional Comments From belyshev at depni dot sinp dot msu dot ru  2005-01-23 14:36 -------
(In reply to comment #8)
> Closing this as won't fix.  Lets focus on PR19581 instead. 

Two notes:

1) tree-outof-ssa does not coalesce variables in this case:

g.c:                             g.c.t65.optimized:
------------------------------------------------------------------------
void g ()                       |
{                               |       <bb 0>:
  r [0] += r [2];               |         D.1129 = r[0] + r[2];
  r [1] += r [0];               |         r[0] = D.1129;
  r [2] += r [1];               |         D.1131 = D.1129 + r[1];
}                               |         r[1] = D.1131;
                                |         r[2] = D.1131 + r[2];
                                |         return;
                                |
------------------------------------------------------------------------

... while it does in this:
f.c:                             f.c.t65.optimized:
------------------------------------------------------------------------
void f ()                       |
{                               |       <bb 0>:
  r [0] += r [1];               |         r[0] = r[0] + r[1];
  r [1] += r [2];               |         r[1] = r[1] + r[2];
  r [2] += r [0];               |         r[2] = r[2] + r[0];
}                               |         return;
                                |
------------------------------------------------------------------------

2) and disabling -fgcse-lm *fixes* original problem for 3.4 and 4.0.

I cannot believe this bug is WONTFIX for 4.0 just because it will be fixed in
4.1 at tree level.


-- 


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



More information about the Gcc-bugs mailing list