FRE has all the information available, it's simply not used because eliminate()
does not consider copy statements (and does not run elimination on PHI
arguments
for the same reason). Also for full const/copy propagation COND_EXPRs need to
be value-numbered.
This would let us get rid of a copyprop and a ccp pass.
I have a prototype patch (still lacks COND_EXPR VN).
--
Summary: FRE does not do const or copy propagation while it could
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org
BugsThisDependsOn: 30997
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31914