------- 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