FRE does not optimize int i; int foo (void) { int j; i = j; return i; }
because j_1(D) is never in AVAIL_OUT, so we do not find a leader for it. We can fix this by either pretending used default definitions are defined in the entry block or by treating default definitions the same as constants during elimination. Danny? -- Summary: default definitions not in avail_out Product: gcc Version: 4.4.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 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38723