The following 2 functions should be compiled to the same thing. This is a test from Briggs' compiler benchmarks.
void vnum_test8(int *data) { int i; int stop = data[3]; int m = data[4]; int n = m; for (i=0; i<stop; i++) { int k = data[2]; data[k] = 2; data[0] = m - n; k = data[1]; m = m + k; n = n + k; } } void vnum_result8(int *data) { int i; int stop = data[3]; for (i=0; i<stop; i++) { int k = data[2]; data[k] = 2; data[0] = 0; } } -- Summary: missed value numbering optimization Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dann at godzilla dot ics dot uci dot edu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30098