http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45676
--- Comment #3 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2010-09-30 21:28:22 UTC --- (In reply to comment #2) > We can't hoist invariant control flow. Is this not possible, not desirable, or both? In C, you could (in principle) also hoist for (i=0; i<10; i++) { for (j=0; j<10; j++) a[j] = j /* Terms using a, no redefinition of a, no alias etc. */ } > Also print *,c is surely thought > to be an escape point for c and thus may clobber it. Yes, PR 20165... > I'd rate this impossible to do for the middle-end (and generally not worth > the hassle to implement). Better fix your sources ;) Well, if somebody does FORmula TRANslation and doesn't think about this, there is not reason not to help him :-)