Prechádzať zdrojové kódy

Add a function to get a codelet name

Get the codelet name if provided or fallback
to the perfmodel name if there is any.
Philippe SWARTVAGHER 4 rokov pred
rodič
commit
c49fb944b5
3 zmenil súbory, kde vykonal 18 pridanie a 2 odobranie
  1. 3 0
      src/common/utils.h
  2. 13 0
      src/util/misc.c
  3. 2 2
      src/util/starpu_task_insert_utils.c

+ 3 - 0
src/common/utils.h

@@ -179,6 +179,9 @@ struct starpu_codelet;
 /** Returns the symbol associated to that job if any. */
 const char *_starpu_codelet_get_model_name(struct starpu_codelet *cl);
 
+/** Returns the name of a codelet, or fallback to the name of the perfmodel. */
+const char *_starpu_codelet_get_name(struct starpu_codelet *cl);
+
 int _starpu_check_mutex_deadlock(starpu_pthread_mutex_t *mutex);
 
 void _starpu_util_init(void);

+ 13 - 0
src/util/misc.c

@@ -18,6 +18,19 @@
 #include <common/utils.h>
 #include <core/jobs.h>
 
+const char *_starpu_codelet_get_name(struct starpu_codelet *cl)
+{
+	if (!cl)
+		return NULL;
+
+	if (cl->name)
+		return cl->name;
+	else if (cl->model && cl->model->symbol && cl->model->symbol[0])
+		return cl->model->symbol;
+	else
+		return NULL;
+}
+
 const char *_starpu_codelet_get_model_name(struct starpu_codelet *cl)
 {
 	if (!cl)

+ 2 - 2
src/util/starpu_task_insert_utils.c

@@ -385,7 +385,7 @@ void starpu_task_insert_data_process_arg(struct starpu_codelet *cl, struct starp
 	{
 		STARPU_ASSERT_MSG(STARPU_CODELET_GET_MODE(cl, *current_buffer) == arg_mode,
 				  "The codelet <%s> defines the access mode %d for the buffer %d which is different from the mode %d given to starpu_task_insert\n",
-				  cl->name, STARPU_CODELET_GET_MODE(cl, *current_buffer),
+				  _starpu_codelet_get_name(cl), STARPU_CODELET_GET_MODE(cl, *current_buffer),
 				  *current_buffer, arg_mode);
 	}
 	else
@@ -435,7 +435,7 @@ void starpu_task_insert_data_process_mode_array_arg(struct starpu_codelet *cl, s
 		{
 			STARPU_ASSERT_MSG(STARPU_CODELET_GET_MODE(cl, *current_buffer) == descrs[i].mode,
 					"The codelet <%s> defines the access mode %d for the buffer %d which is different from the mode %d given to starpu_task_insert\n",
-					cl->name, STARPU_CODELET_GET_MODE(cl, *current_buffer),
+					_starpu_codelet_get_name(cl), STARPU_CODELET_GET_MODE(cl, *current_buffer),
 					*current_buffer, descrs[i].mode);
 		}
 		else