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

Reply via email to