------- Comment #6 from rguenth at gcc dot gnu dot org 2009-01-16 20:24 ------- int main (void) { int si1 = a; int si2 = b; int i;
for (i = 0; i < 100; ++i) { if (a == 2) exit (0); r += si1 % si2; } abort (); } shows that PRE doesn't move code to where it executes more times than before the transformation. If it knows about this extra control-flow. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38819