http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904
--- Comment #40 from rguenther at suse dot de <rguenther at suse dot de> 2011-12-05 09:55:47 UTC --- On Mon, 5 Dec 2011, ebotcazou at gcc dot gnu.org wrote: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50904 > > --- Comment #39 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-12-05 > 09:21:15 UTC --- > > Thus, I think if at the RTL level we see a missed invariant motion then > > this is a RTL level bug (esp. if it only triggers with > > -fno-protect-parens). > > Well, how can the RTL level invent load hoisting opportunities? They are of > course already present at the Tree level, see the .optimized dump: > > vect_var_.124_350 = MEM[(real(kind=8)[9] *)&x2gauss]; They are considered dependent because they are still decomposed as vect_px2gauss.123_680 = &x2gauss; ... vect_var_.124_350 = MEM[(real(kind=8)[9] *)vect_px2gauss.123_680]; during LIM3. Let me check why we don't fix that up in LIM dependence checking.