------- Comment #10 from rguenth at gcc dot gnu dot org 2007-11-04 15:45 ------- FRE doesn't replace a SSA_NAME with another SSA_NAME. So even though VN figured that e_3 == d_2 == c_1 it doesn't replace them here:
SCCVN says e_3 value numbers to c_1 (VH.5) SCCVN says d_2 value numbers to c_1 (VH.5) <bb 5>: # e_3 = PHI <e_8(3), e_12(4)> # d_2 = PHI <d_7(3), d_11(4)> # c_1 = PHI <c_6(3), c_10(4)> D.1182_13 = c_1 + d_2; D.1181_14 = D.1182_13 + e_3; the next copyprop pass makes them look the same: <bb 5>: # e_3 = PHI <c_6(3), c_10(4)> # d_2 = PHI <c_6(3), c_10(4)> # c_1 = PHI <c_6(3), c_10(4)> D.1182_13 = c_1 + d_2; D.1181_14 = D.1182_13 + e_3; return D.1181_14; but that's it. See also PR31914. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dberlin at gcc dot gnu dot | |org BugsThisDependsOn| |31914 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28868