------- Comment #2 from rguenth at gcc dot gnu dot org 2008-10-12 15:25 ------- The original testcase (from an IRC discussion) reduced to a C testcase is:
struct A { int n; int m; }; void g(); void test (struct A* iter) { struct A end = { 0, 0 }; while (iter->n != end.n) { iter->n = iter->n + 1; if (iter->n == iter->m) g(); } } where there is an optimization possibility to sink the store to iter->n to before the call and apply load-store motion to iter->n for the remaining loop. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |alias http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37810