Jeff Law <l...@redhat.com> wrote: >On 11/22/13 05:10, Richard Biener wrote: > >>> + if (totally_clobbered_loops) >>> + { >>> + /* Release the current loop structures, they are totally >>> + clobbered at this point. */ >>> + loop_optimizer_finalize (); >>> + current_loops = NULL; >> >> This is definitely a no-go and should be immediately reverted. If >you >> wreck a particular loop simply mark it for removal by setting >> ->header and ->latch to NULL. Loop fixup will then re-discover >> it (or really remove it). >> >> With the code above you discard all loops in the function including >> meta-information on openmp loops, #pragma ivdeps info, etc. >I realize it discards all that stuff, but that's still the safeest >thing >to do. > >If we can selectively discard, that seems like a follow-up item. The >loop stuff is new and something I know little about. Thus I chose the >safest route.
Well. Safe here is arguably a bit optimistic ;-) >So the issue here is we can create irreducible regions & new nested >loops. Does just setting the header,latch fields for the current loop >handle those cases? Yes. Richard. >jeff