This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/19580] [4.0/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: 12 Sep 2007 14:44:07 -0000
- Subject: [Bug rtl-optimization/19580] [4.0/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 #32 from rguenth at gcc dot gnu dot org 2007-09-12 14:44 -------
load-store motion at the tree level should really catch this. For this it
needs to be extended to disambiguate aliases by looking at the actual memory
references:
<bb 4>:
# r_8 = PHI <r_29(5), r_23(D)(3)>
# n_11 = PHI <n_3(5), n_14(3)>
# VUSE <r_8>
D.1137_4 = r[0];
# VUSE <r_8>
D.1138_5 = r[5];
D.1139_6 = D.1138_5 + D.1137_4;
# r_24 = VDEF <r_8>
r[0] = D.1139_6;
# VUSE <r_24>
D.1140_7 = r[1];
D.1141_9 = D.1139_6 + D.1140_7;
...
# r_29 = VDEF <r_28>
r[5] = D.1148_21;
n_3 = n_11 + -1;
if (n_3 != 0)
goto <bb 5>;
else
goto <bb 6>;
Zdenek, I think you had a patch to make lim more precise in this regard?
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rakdver at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580