On 10/22/15 04:04, Jakub Jelinek wrote:

+  /* Ignore blocks containing non-clonable function calls.  */
+  for (gsi = gsi_start_bb (CONST_CAST_BB (bb));
+       !gsi_end_p (gsi); gsi_next (&gsi))
+    {
+      g = gsi_stmt (gsi);
+
+      if (is_gimple_call (g) && gimple_call_internal_p (g)
+         && gimple_call_internal_unique_p (as_a <gcall *> (g)))
+       return true;
+    }

Do you have to scan the whole bb?  E.g. don't or should not those
unique IFNs force end of bb?

What about adding a flag to struct function?

  /* Nonzero if this function contains IFN_UNIQUE markers.  */
  unsigned int has_unique_calls : 1;

Then the tracer could either skip it, or do the search?

(I notice there are cilk flags already in struct function, instead of the above, we could add an openacc-specific one with a similar behaviour?)

nathan

Reply via email to