The following test case from Briggs' optimization test suite is missed by tree IV opts (and nothing on RTL catches this either): void strength_test2(int *data) { int k = data[0]; int i = 0; do { data[data[2]] = 2; i = i + 1; } while (i * k < data[1]); } void strength_result2(int *data) { int k = data[0]; int i = 0; do { data[data[2]] = 2; i = i + k; } while (i < data[1]); }
-- Summary: Missed IV optimization Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P2 Component: tree-optimization AssignedTo: rakdver at gcc dot gnu dot org ReportedBy: steven at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18316