This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/28868] [4.0/4.1/4.2/4.3 Regression] Not elimintating the PHIs which have the same arguments
- 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: 4 Nov 2007 15:45:59 -0000
- Subject: [Bug tree-optimization/28868] [4.0/4.1/4.2/4.3 Regression] Not elimintating the PHIs which have the same arguments
- References: <bug-28868-6528@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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