This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/22532] [4.1 Regression] We produce worse code on the mainline for a loop
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Jul 2005 05:17:29 -0000
- Subject: [Bug tree-optimization/22532] [4.1 Regression] We produce worse code on the mainline for a loop
- References: <20050717205007.22532.pinskia@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-18 05:17 -------
The reason why eustore does not remove it is because we have a loop and a PHI intbetween the load
and store:
# d_15 = V_MUST_DEF <d_1>;
d = s_2;
# d_18 = V_MAY_DEF <d_15>;
f (s_9);
# VUSE <d_18>;
s_16 = d;
i_17 = i_3 + 1;
# i_3 = PHI <i_10(0), i_17(1)>;
# s_2 = PHI <s_8(0), s_16(1)>;
# d_1 = PHI <d_4(0), d_18(1)>;
<L1>:;
if (i_3 < l_11) goto <L0>; else goto <L2>;
<L2>:;
s_12 = s_2;
# d_13 = V_MUST_DEF <d_1>;
d = s_2;
See how have a PHI involved. Maybe eustore should handle PHIs too.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22532