This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/19580] [4.1/4.2/4.3 Regression] missed load/store motion
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Mar 2008 13:40:27 -0000
- Subject: [Bug rtl-optimization/19580] [4.1/4.2/4.3 Regression] missed load/store motion
- References: <bug-19580-7958@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #38 from rguenth at gcc dot gnu dot org 2008-03-28 13:40 -------
Fixed in GCC 4.4 with the store-motion rewrite to use an alias-oracle:
<bb 3>:
r_I_lsm.18 = r[5];
r_I_lsm.13 = r[0];
r_I_lsm.14 = r[1];
r_I_lsm.15 = r[2];
r_I_lsm.16 = r[3];
r_I_lsm.17 = r[4];
r_I_lsm.27 = r_I_lsm.18;
<bb 4>:
r_I_lsm.13 = r_I_lsm.13 + r_I_lsm.27;
r_I_lsm.14 = r_I_lsm.14 + r_I_lsm.13;
r_I_lsm.15 = r_I_lsm.14 + r_I_lsm.15;
r_I_lsm.16 = r_I_lsm.15 + r_I_lsm.16;
r_I_lsm.17 = r_I_lsm.16 + r_I_lsm.17;
r_I_lsm.18 = r_I_lsm.17 + r_I_lsm.18;
n.26 = n.26 + -1;
r_I_lsm.28 = r_I_lsm.27;
r_I_lsm.27 = r_I_lsm.18;
if (n.26 != 0)
goto <bb 4>;
else
goto <bb 5>;
<bb 5>:
r_I_lsm.27 = r_I_lsm.28;
r[0] = r_I_lsm.13;
r[1] = r_I_lsm.14;
r[2] = r_I_lsm.15;
r[3] = r_I_lsm.16;
r[4] = r_I_lsm.17;
r[5] = r_I_lsm.18;
I'll add a testcase to the testsuite.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to work|3.3.3 2.95.3 3.0.4 3.2.3 |3.3.3 2.95.3 3.0.4 3.2.3
| |4.4.0
Summary|[4.1/4.2/4.3/4.4 Regression]|[4.1/4.2/4.3 Regression]
|missed load/store motion |missed load/store motion
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580