This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Improve handling of threads which cross over the current loops header


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]