This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store motion
- From: "belyshev at depni dot sinp dot msu dot ru" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Jan 2005 14:36:20 -0000
- Subject: [Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store motion
- References: <20050123013419.19580.belyshev@depni.sinp.msu.ru>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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