[Openmp-commits] [PATCH] D13494: [OMPT] Initialize task fields only if needed

Jonathan Peyton via Openmp-commits openmp-commits at lists.llvm.org
Fri Oct 9 10:40:09 PDT 2015


This revision was automatically updated to reflect the committed changes.
Closed by commit rL249855: [OMPT] Initialize task fields only if needed (authored by jlpeyton).

Changed prior to commit:
  http://reviews.llvm.org/D13494?vs=36705&id=36962#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D13494

Files:
  openmp/trunk/runtime/src/kmp.h
  openmp/trunk/runtime/src/kmp_tasking.c

Index: openmp/trunk/runtime/src/kmp.h
===================================================================
--- openmp/trunk/runtime/src/kmp.h
+++ openmp/trunk/runtime/src/kmp.h
@@ -3150,9 +3150,6 @@
 extern kmp_task_t* __kmp_task_alloc( ident_t *loc_ref, kmp_int32 gtid,
   kmp_tasking_flags_t *flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds,
   kmp_routine_entry_t task_entry );
-#if OMPT_SUPPORT
-extern void __kmp_task_init_ompt( kmp_taskdata_t * task, int tid );
-#endif
 extern void __kmp_init_implicit_task( ident_t *loc_ref, kmp_info_t *this_thr,
                   kmp_team_t *team, int tid, int set_curr_task );
 
Index: openmp/trunk/runtime/src/kmp_tasking.c
===================================================================
--- openmp/trunk/runtime/src/kmp_tasking.c
+++ openmp/trunk/runtime/src/kmp_tasking.c
@@ -750,18 +750,18 @@
 #if OMPT_SUPPORT
 //----------------------------------------------------------------------------------------------------
 // __kmp_task_init_ompt:
-//   Initialize OMPT fields maintained by a task. Since the serial task is initialized before
-//   ompt_initialize is called, at the point the serial task is initialized we don't know whether
-//   OMPT will be used or not when the serial task is initialized. This function provides the support
-//   needed to initialize OMPT for the serial task after the fact.
+//   Initialize OMPT fields maintained by a task. This will only be called after
+//   ompt_tool, so we already know whether ompt is enabled or not.
 
-void
-__kmp_task_init_ompt( kmp_taskdata_t * task, int tid )
+static inline void
+__kmp_task_init_ompt( kmp_taskdata_t * task, int tid, void * function )
 {
-    task->ompt_task_info.task_id = __ompt_task_id_new(tid);
-    task->ompt_task_info.function = NULL;
-    task->ompt_task_info.frame.exit_runtime_frame = NULL;
-    task->ompt_task_info.frame.reenter_runtime_frame = NULL;
+    if (ompt_enabled) {
+        task->ompt_task_info.task_id = __ompt_task_id_new(tid);
+        task->ompt_task_info.function = function;
+        task->ompt_task_info.frame.exit_runtime_frame = NULL;
+        task->ompt_task_info.frame.reenter_runtime_frame = NULL;
+    }
 }
 #endif
 
@@ -827,7 +827,7 @@
     }
 
 #if OMPT_SUPPORT
-    __kmp_task_init_ompt(task, tid);
+    __kmp_task_init_ompt(task, tid, NULL);
 #endif
 
     KF_TRACE(10, ("__kmp_init_implicit_task(exit): T#:%d team=%p task=%p\n",
@@ -1032,12 +1032,7 @@
                   gtid, taskdata, taskdata->td_parent) );
 
 #if OMPT_SUPPORT
-    if (ompt_enabled) {
-        taskdata->ompt_task_info.task_id = __ompt_task_id_new(gtid);
-        taskdata->ompt_task_info.function = (void*) task_entry;
-        taskdata->ompt_task_info.frame.exit_runtime_frame = NULL; 
-        taskdata->ompt_task_info.frame.reenter_runtime_frame = NULL;
-    }
+    __kmp_task_init_ompt(taskdata, gtid, (void*) task_entry);
 #endif
 
     return task;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13494.36962.patch
Type: text/x-patch
Size: 2905 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-commits/attachments/20151009/372ef416/attachment-0001.bin>


More information about the Openmp-commits mailing list