diff --git a/runtime/starpu/codelets/codelet_zgemm.c b/runtime/starpu/codelets/codelet_zgemm.c
index 20a54f2e1711066ca1d5ac0d40f25bbe9bec1db1..cf9b4b168f1abdfe222b1cd3be504b7dfb6bf38b 100644
--- a/runtime/starpu/codelets/codelet_zgemm.c
+++ b/runtime/starpu/codelets/codelet_zgemm.c
@@ -188,16 +188,11 @@ void INSERT_TASK_zgemm_Astat( const RUNTIME_option_t *options,
         accessC = STARPU_RW;
     }
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s, %s )", cl_name,
-                            A->get_blktile( A, Am, An )->name,
-                            B->get_blktile( B, Bm, Bn )->name,
-                            C->get_blktile( C, Cm, Cn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 3,
+                                      A->get_blktile( A, Am, An ),
+                                      B->get_blktile( B, Bm, Bn ),
+                                      C->get_blktile( C, Cm, Cn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
@@ -264,16 +259,11 @@ void INSERT_TASK_zgemm( const RUNTIME_option_t *options,
     /* Reduce the C access if needed */
     accessC = ( beta == 0. ) ? STARPU_W : (STARPU_RW | ((beta == 1.) ? STARPU_COMMUTE : 0));
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s, %s )", cl_name,
-                            A->get_blktile( A, Am, An )->name,
-                            B->get_blktile( B, Bm, Bn )->name,
-                            C->get_blktile( C, Cm, Cn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 3,
+                                      A->get_blktile( A, Am, An ),
+                                      B->get_blktile( B, Bm, Bn ),
+                                      C->get_blktile( C, Cm, Cn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_zhemm.c b/runtime/starpu/codelets/codelet_zhemm.c
index e2626017311639d0ba0f2d78a9afd02733e1d16f..67fe91b28888f1532966332f275683e9c6ba5717 100644
--- a/runtime/starpu/codelets/codelet_zhemm.c
+++ b/runtime/starpu/codelets/codelet_zhemm.c
@@ -180,16 +180,11 @@ void INSERT_TASK_zhemm_Astat( const RUNTIME_option_t *options,
         accessC = STARPU_RW;
     }
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s, %s )", cl_name,
-                            A->get_blktile( A, Am, An )->name,
-                            B->get_blktile( B, Bm, Bn )->name,
-                            C->get_blktile( C, Cm, Cn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 3,
+                                      A->get_blktile( A, Am, An ),
+                                      B->get_blktile( B, Bm, Bn ),
+                                      C->get_blktile( C, Cm, Cn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
@@ -255,14 +250,11 @@ void INSERT_TASK_zhemm( const RUNTIME_option_t *options,
     /* Reduce the C access if needed */
     accessC = ( beta == 0. ) ? STARPU_W : (STARPU_RW | ((beta == 1.) ? STARPU_COMMUTE : 0));
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    if ( clargs != NULL )
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s, %s )", cl_name, A->get_blktile( A, Am, An )->name, B->get_blktile( B, Bm, Bn )->name, C->get_blktile( C, Cm, Cn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 3,
+                                      A->get_blktile( A, Am, An ),
+                                      B->get_blktile( B, Bm, Bn ),
+                                      C->get_blktile( C, Cm, Cn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_zherk.c b/runtime/starpu/codelets/codelet_zherk.c
index 7d462c00f9f5ae3f29c24213a665edf949de253e..c53607f9d1034671d29bb2a4160d26e535daf598 100644
--- a/runtime/starpu/codelets/codelet_zherk.c
+++ b/runtime/starpu/codelets/codelet_zherk.c
@@ -147,15 +147,10 @@ void INSERT_TASK_zherk( const RUNTIME_option_t *options,
     /* Reduce the C access if needed */
     accessC = ( beta == 0. ) ? STARPU_W : STARPU_RW;
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s )", cl_name,
-                            A->get_blktile( A, Am, An )->name,
-                            C->get_blktile( C, Cm, Cn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 2,
+                                      A->get_blktile( A, Am, An ),
+                                      C->get_blktile( C, Cm, Cn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_zlauum.c b/runtime/starpu/codelets/codelet_zlauum.c
index e2071f3555ff32fcce6b306fc21d36cf0becb498..bc49ece66b29f26d901891c3ca6900bbee749a87 100644
--- a/runtime/starpu/codelets/codelet_zlauum.c
+++ b/runtime/starpu/codelets/codelet_zlauum.c
@@ -74,13 +74,9 @@ void INSERT_TASK_zlauum( const RUNTIME_option_t *options,
     /* Callback fro profiling information */
     callback = options->profiling ? cl_zlauum_callback : NULL;
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s )", cl_name, A->get_blktile( A, Am, An )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 1,
+                                      A->get_blktile( A, Am, An ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_zpotrf.c b/runtime/starpu/codelets/codelet_zpotrf.c
index ae7d91479eba7b536879018307271734bc012087..b8b18765db71cecf6a9f79a4b3a333cb272f165d 100644
--- a/runtime/starpu/codelets/codelet_zpotrf.c
+++ b/runtime/starpu/codelets/codelet_zpotrf.c
@@ -91,13 +91,9 @@ void INSERT_TASK_zpotrf( const RUNTIME_option_t *options,
     /* Callback fro profiling information */
     callback = options->profiling ? cl_zpotrf_callback : NULL;
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s )", cl_name, A->get_blktile( A, Am, An )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 1,
+                                      A->get_blktile( A, Am, An ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_zsymm.c b/runtime/starpu/codelets/codelet_zsymm.c
index 8420d6c8aa53941468e16684712d3e0c466302ba..ed8dea80b401d87dc8bd953c169eb11d2945cb7d 100644
--- a/runtime/starpu/codelets/codelet_zsymm.c
+++ b/runtime/starpu/codelets/codelet_zsymm.c
@@ -181,14 +181,11 @@ void INSERT_TASK_zsymm_Astat( const RUNTIME_option_t *options,
         accessC = STARPU_RW;
     }
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    if ( clargs != NULL )
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s, %s )", cl_name, A->get_blktile( A, Am, An )->name, B->get_blktile( B, Bm, Bn )->name, C->get_blktile( C, Cm, Cn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 3,
+                                      A->get_blktile( A, Am, An ),
+                                      B->get_blktile( B, Bm, Bn ),
+                                      C->get_blktile( C, Cm, Cn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
@@ -254,14 +251,11 @@ void INSERT_TASK_zsymm( const RUNTIME_option_t *options,
     /* Reduce the C access if needed */
     accessC = ( beta == 0. ) ? STARPU_W : (STARPU_RW | ((beta == 1.) ? STARPU_COMMUTE : 0));
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    if ( clargs != NULL )
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s, %s )", cl_name, A->get_blktile( A, Am, An )->name, B->get_blktile( B, Bm, Bn )->name, C->get_blktile( C, Cm, Cn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 3,
+                                      A->get_blktile( A, Am, An ),
+                                      B->get_blktile( B, Bm, Bn ),
+                                      C->get_blktile( C, Cm, Cn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_zsyrk.c b/runtime/starpu/codelets/codelet_zsyrk.c
index fb2dde97579a911e4fef91dd25a42bc7a98663d2..f11dd4158341615defeb35755d8c8dcabb28ebce 100644
--- a/runtime/starpu/codelets/codelet_zsyrk.c
+++ b/runtime/starpu/codelets/codelet_zsyrk.c
@@ -148,15 +148,9 @@ void INSERT_TASK_zsyrk( const RUNTIME_option_t *options,
     /* Reduce the C access if needed */
     accessC = ( beta == 0. ) ? STARPU_W : STARPU_RW;
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s )", cl_name,
-                            A->get_blktile( A, Am, An )->name,
-                            C->get_blktile( C, Cm, Cn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    cl_name = chameleon_codelet_name( cl_name, 2,
+                                      A->get_blktile( A, Am, An ),
+                                      C->get_blktile( C, Cm, Cn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_ztrmm.c b/runtime/starpu/codelets/codelet_ztrmm.c
index 00b029c8a7c35468ac53b75a50b3ea2dd08f2410..36b31640cc56bf85d19a31900af7aab3d4ca43c0 100644
--- a/runtime/starpu/codelets/codelet_ztrmm.c
+++ b/runtime/starpu/codelets/codelet_ztrmm.c
@@ -138,14 +138,10 @@ void INSERT_TASK_ztrmm( const RUNTIME_option_t *options,
     /* Callback fro profiling information */
     callback = options->profiling ? cl_ztrmm_callback : NULL;
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    if ( clargs != NULL )
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s )", cl_name, A->get_blktile( A, Am, An )->name, B->get_blktile( B, Bm, Bn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 2,
+                                      A->get_blktile( A, Am, An ),
+                                      B->get_blktile( B, Bm, Bn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_ztrsm.c b/runtime/starpu/codelets/codelet_ztrsm.c
index eccb112d34c9d188a653359ca1728b560f176346..901eeb7809ec81505559b2c3e83b4f7a4c7e1bb3 100644
--- a/runtime/starpu/codelets/codelet_ztrsm.c
+++ b/runtime/starpu/codelets/codelet_ztrsm.c
@@ -142,14 +142,10 @@ void INSERT_TASK_ztrsm( const RUNTIME_option_t *options,
     /* Callback fro profiling information */
     callback = options->profiling ? cl_ztrsm_callback : NULL;
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    if ( clargs != NULL )
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s, %s )", cl_name, A->get_blktile( A, Am, An )->name, B->get_blktile( B, Bm, Bn )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 2,
+                                      A->get_blktile( A, Am, An ),
+                                      B->get_blktile( B, Bm, Bn ) );
 
     /* Insert the task */
     rt_starpu_insert_task(
diff --git a/runtime/starpu/codelets/codelet_ztrtri.c b/runtime/starpu/codelets/codelet_ztrtri.c
index 98618b0ca0694b9e55d9fdd095ce56156658ec4e..19499f058f32c493d6be3216439f18e84de15d0e 100644
--- a/runtime/starpu/codelets/codelet_ztrtri.c
+++ b/runtime/starpu/codelets/codelet_ztrtri.c
@@ -88,13 +88,8 @@ void INSERT_TASK_ztrtri( const RUNTIME_option_t *options,
     /* Callback fro profiling information */
     callback = options->profiling ? cl_ztrtri_callback : NULL;
 
-#if defined(CHAMELEON_KERNELS_TRACE)
-    {
-        char *cl_fullname;
-        chameleon_asprintf( &cl_fullname, "%s( %s )", cl_name, A->get_blktile( A, Am, An )->name );
-        cl_name = cl_fullname;
-    }
-#endif
+    /* Refine name */
+    cl_name = chameleon_codelet_name( cl_name, 1, A->get_blktile( A, Am, An ) );
 
     /* Insert the task */
     rt_starpu_insert_task(