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.
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?
jeff