https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87543
--- Comment #2 from Eyal Rozenberg <eyalroz at technion dot ac.il> --- (In reply to Richard Biener from comment #1) > The issue at -O2 is etc. That is one issue, but there is the question of the changes in behavior between versions and when `-march` is used. I don't know if you guys are actively maintaining 7.x or 6.x ; assuming you do, each of them should at least exhibit coherent behavior here. > because of the awkward IV structure PRE present us with I assume other GCC devs will understand what this means, but for my benefit as the lay reporter - can you define (or link to a definition of) what "PRE" is and what is an "awkward IV structure"? (I'm guessing the acronym expands to Induction Variable.) --- Comment #3 from rguenther at suse dot de <rguenther at suse dot de> --- On Mon, 8 Oct 2018, eyalroz at technion dot ac.il wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87543 > > --- Comment #2 from Eyal Rozenberg <eyalroz at technion dot ac.il> --- > (In reply to Richard Biener from comment #1) > > The issue at -O2 is etc. > > That is one issue, but there is the question of the changes in behavior > between > versions and when `-march` is used. I don't know if you guys are actively > maintaining 7.x or 6.x ; assuming you do, each of them should at least exhibit > coherent behavior here. > > > because of the awkward IV structure PRE present us with > > I assume other GCC devs will understand what this means, but for my benefit as > the lay reporter - can you define (or link to a definition of) what "PRE" is > and what is an "awkward IV structure"? (I'm guessing the acronym expands to > Induction Variable.) PRE means partial redundancy removal -- GCC sees that the loop body in the first iteration can be evaluated at compile-time and restructures the loop to not compute it. IV is indeed induction variable.