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