From 3c0127190d2ebff8a8c55a7fcdded7c7f6077576 Mon Sep 17 00:00:00 2001
From: Florent Pruvost <florent.pruvost@inria.fr>
Date: Wed, 19 Feb 2025 16:47:56 +0100
Subject: [PATCH 01/15] gitlab-ci-initial-cache.cmake: CMAKE_C_FLAGS must be
 set as a cache variable to be used, and thus activate -Werror

---
 cmake_modules/gitlab-ci-initial-cache.cmake | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/cmake_modules/gitlab-ci-initial-cache.cmake b/cmake_modules/gitlab-ci-initial-cache.cmake
index 4bc29ea3b..0a436305c 100644
--- a/cmake_modules/gitlab-ci-initial-cache.cmake
+++ b/cmake_modules/gitlab-ci-initial-cache.cmake
@@ -2,7 +2,11 @@ set(BUILD_SHARED_LIBS "ON" CACHE BOOL "")
 set(CMAKE_INSTALL_PREFIX "$ENV{PWD}/install-$ENV{VERSION}" CACHE PATH "")
 set(CMAKE_VERBOSE_MAKEFILE "ON" CACHE BOOL "")
 
-set(CMAKE_C_FLAGS "-Werror")
+if(CMAKE_C_FLAGS)
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror" CACHE STRING "")
+else()
+  set(CMAKE_C_FLAGS "-Werror" CACHE STRING "")
+endif()
 
 option(MORSE_ENABLE_WARNING  "Enable warning messages"        ON)
 option(MORSE_ENABLE_COVERAGE "Enable flags for coverage test" ON)
-- 
GitLab


From 6a4757c547fd3a8fc0bdc72004c023befeba8b81 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Wed, 19 Feb 2025 23:42:18 +0100
Subject: [PATCH 02/15] hmatoss: Fix envrionment variable name

---
 .gitlab/build.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab/build.yml b/.gitlab/build.yml
index 2d449df9d..1cc7ef411 100644
--- a/.gitlab/build.yml
+++ b/.gitlab/build.yml
@@ -23,7 +23,7 @@ build_hmat:
     SYSTEM: linux
     VERSION: hmat
     LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
-    BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=OFF -DCHAMELEON_USE_MPI=ON -DCHAMELEON_USE_HMAT=ON"
+    BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=OFF -DCHAMELEON_USE_MPI=ON -DCHAMELEON_USE_HMATOSS=ON"
 
 build_openmp:
   extends: .build_script_linux
-- 
GitLab


From 72d8c07bddc6cdecedcc20e65db38b58860fd556 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Wed, 19 Feb 2025 23:55:39 +0100
Subject: [PATCH 03/15] debug: cast print pointers

---
 runtime/starpu/control/runtime_descriptor.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index bf4fbd917..ea26e39c5 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -409,7 +409,7 @@ void *RUNTIME_data_getaddr( const CHAM_desc_t *A, int m, int n )
 
 #if defined(CHAMELEON_KERNELS_TRACE)
     fprintf( stderr, "%s - %p registered with tag %ld\n",
-             tile->name, *ptrtile, A->mpitag + A->lmt * nn + mm );
+             tile->name, (void*)(*ptrtile), A->mpitag + A->lmt * nn + mm );
 #endif
     assert( *ptrtile );
     return (void*)(*ptrtile);
@@ -486,7 +486,7 @@ void *RUNTIME_data_getaddr_withconversion( const RUNTIME_option_t *options,
 
 #if defined(CHAMELEON_KERNELS_TRACE)
     fprintf( stderr, "%s - %p registered with tag %ld\n",
-             tile->name, *ptrtile, A->mpitag + shift );
+             tile->name, (void*)(*ptrtile), A->mpitag + shift );
 #endif
     assert( *ptrtile );
 
-- 
GitLab


From 2ff910d9c138311831aa2033bcf58d99cb042d24 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 00:14:57 +0100
Subject: [PATCH 04/15] cesca: Refactor cesca to avoid unitialized values

---
 coreblas/compute/core_zcesca.c | 59 ++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 27 deletions(-)

diff --git a/coreblas/compute/core_zcesca.c b/coreblas/compute/core_zcesca.c
index 447067ba7..c60044352 100644
--- a/coreblas/compute/core_zcesca.c
+++ b/coreblas/compute/core_zcesca.c
@@ -133,11 +133,6 @@ int CORE_zcesca( int center, int scale,
                  CHAMELEON_Complex64_t *A, int LDA )
 {
     int i, j;
-    CHAMELEON_Complex64_t gi, gj, g, rc, sqrc;
-    double di, dj;
-
-    gj = 0.;
-    dj = 0.;
 
     /* Check input arguments */
     if ( (center != 0) && (center != 1) ) {
@@ -199,6 +194,11 @@ int CORE_zcesca( int center, int scale,
 
     if ( !( (center == 1) && (scale == 1) && (axis == ChamEltwise) ) ) {
         /* PCA case i.e. centered-scaled or bi-centering */
+        CHAMELEON_Complex64_t gi = (CHAMELEON_Complex64_t)0.;
+        CHAMELEON_Complex64_t gj = (CHAMELEON_Complex64_t)0.;
+        CHAMELEON_Complex64_t g  = (CHAMELEON_Complex64_t)0.;
+        double di = 0.;
+        double dj = 0.;
 
         if ( (center == 1) && (axis == ChamEltwise) ) {
             /* overall mean of values */
@@ -215,35 +215,40 @@ int CORE_zcesca( int center, int scale,
                 dj = Dj[j*LDDJ];
             }
             for(i = 0; i < Mt; i++) {
-                if ( (center == 1) && ( (axis == ChamRowwise) || (axis == ChamEltwise) ) ) {
-                    /* mean of values of the row */
-                    gi = Gi[i] / ((double)N);
-                    /* compute centered matrix factor */
-                    A[j*LDA+i] -= gi;
-                }
-                if ( (center == 1) && ( (axis == ChamColumnwise) || (axis == ChamEltwise) ) ) {
-                    /* compute centered matrix factor */
-                    A[j*LDA+i] -= gj;
-                }
-                if ( (center == 1) && (axis == ChamEltwise) ) {
-                    /* compute centered matrix factor */
-                    A[j*LDA+i] += g;
-                }
-                if ( (scale == 1) && (axis == ChamColumnwise) ) {
-                    /* compute scaled matrix factor */
-                    A[j*LDA+i] /= dj;
+                if ( center == 1 ) {
+                    if ( (axis == ChamRowwise) || (axis == ChamEltwise) ) {
+                        /* mean of values of the row */
+                        gi = Gi[i] / ((double)N);
+                        /* compute centered matrix factor */
+                        A[j*LDA+i] -= gi;
+                    }
+                    if ( (axis == ChamColumnwise) || (axis == ChamEltwise) ) {
+                        /* compute centered matrix factor */
+                        A[j*LDA+i] -= gj;
+                    }
+                    if ( axis == ChamEltwise ) {
+                        /* compute centered matrix factor */
+                        A[j*LDA+i] += g;
+                    }
                 }
-                if ( (scale == 1) && (axis == ChamRowwise) ) {
-                    /* norm 2 of the row */
-                    di = Di[i];
-                    /* compute scaled matrix factor */
-                    A[j*LDA+i] /= di;
+                if ( scale == 1 ) {
+                    if ( axis == ChamColumnwise ) {
+                        /* compute scaled matrix factor */
+                        A[j*LDA+i] /= dj;
+                    }
+                    if ( axis == ChamRowwise ) {
+                        /* norm 2 of the row */
+                        di = Di[i];
+                        /* compute scaled matrix factor */
+                        A[j*LDA+i] /= di;
+                    }
                 }
             }
         }
 
     } else {
         /* COA case */
+        CHAMELEON_Complex64_t rc, sqrc;
 
         /* update the matrix */
         for(j = 0; j < Nt; j++) {
-- 
GitLab


From c95c8457fedbe4bc449025740284463b24119401 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Mon, 17 Feb 2025 15:58:29 +0100
Subject: [PATCH 05/15] compute/pzgetrf: Fix unused variables

---
 compute/pzgetrf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/compute/pzgetrf.c b/compute/pzgetrf.c
index 863f1d2be..7e45749e3 100644
--- a/compute/pzgetrf.c
+++ b/compute/pzgetrf.c
@@ -662,7 +662,7 @@ chameleon_pzgetrf_panel_update( struct chameleon_pzgetrf_s *ws,
     const CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
     CHAM_context_t  *chamctxt = chameleon_context_self();
 
-    int m, tempkm, tempmm, tempnn, rankAmn, p;
+    int m, tempkm, tempmm, tempnn, rankAmn;
 
     int lookahead = chamctxt->lookahead;
     int myq       = A->myrank % chameleon_desc_datadist_get_iparam(A, 1);
@@ -721,7 +721,7 @@ void chameleon_pzgetrf( struct chameleon_pzgetrf_s *ws,
     CHAM_context_t  *chamctxt;
     RUNTIME_option_t options;
 
-    int k, m, n, tempkm, tempnn;
+    int k, m, n;
     int min_mnt = chameleon_min( A->mt, A->nt );
 
     chamctxt = chameleon_context_self();
-- 
GitLab


From 962f26dd7a5f3d79d34d7d9560d9baf494594c36 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 00:40:00 +0100
Subject: [PATCH 06/15] compute/pzgetrf: silent warning when compiling without
 mpi

---
 compute/pzgetrf.c | 47 ++++++++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 21 deletions(-)

diff --git a/compute/pzgetrf.c b/compute/pzgetrf.c
index 7e45749e3..9a6ba171a 100644
--- a/compute/pzgetrf.c
+++ b/compute/pzgetrf.c
@@ -564,8 +564,8 @@ chameleon_pzgetrf_panel_update_ws( struct chameleon_pzgetrf_s *ws,
                                    int                         k,
                                    RUNTIME_option_t           *options )
 {
-    CHAM_context_t  *chamctxt = chameleon_context_self();
-    int m, n, tempmm, tempkn, tempkm, p, q, involved, np;
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    int m, tempmm, tempkn, tempkm, q;
     int lookahead = chamctxt->lookahead;
     int P         = chameleon_desc_datadist_get_iparam(A, 0);
     int Q         = chameleon_desc_datadist_get_iparam(A, 1);
@@ -612,36 +612,41 @@ chameleon_pzgetrf_panel_update_ws( struct chameleon_pzgetrf_s *ws,
     }
 
     tempkm = A->get_blkdim( A, k, DIM_m, A->m );
-    np = chameleon_desc_datadist_get_iparam(A, 1) * chameleon_desc_datadist_get_iparam(A, 0);
 #if defined(CHAMELEON_USE_MPI)
-    /* Send Akk for replicated trsm */
-    if ( A->myrank == chameleon_getrankof_2d( A, k, k ) ) {
-        for ( p = 0; p < np; p++ ) {
+    {
+        int n, p, involved;
+        int np = chameleon_desc_datadist_get_iparam(A, 1)
+            *    chameleon_desc_datadist_get_iparam(A, 0);
+
+        /* Send Akk for replicated trsm */
+        if ( A->myrank == chameleon_getrankof_2d( A, k, k ) ) {
+            for ( p = 0; p < np; p++ ) {
+                involved = 0;
+                for ( n = k+1; n < A->nt; n++ ) {
+                    if ( chameleon_p_involved_in_panelk_2dbc( A, n, p ) ) {
+                        involved = 1;
+                        break;
+                    }
+                }
+                if ( involved ) {
+                    INSERT_TASK_zlacpy( options, ChamUpperLower, tempkm, tempkn,
+                                        A(k, k), Wu(p, k) );
+                }
+            }
+        }
+        else {
             involved = 0;
             for ( n = k+1; n < A->nt; n++ ) {
-                if ( chameleon_p_involved_in_panelk_2dbc( A, n, p ) ) {
+                if ( chameleon_involved_in_panelk_2dbc( A, n ) ) {
                     involved = 1;
                     break;
                 }
             }
             if ( involved ) {
                 INSERT_TASK_zlacpy( options, ChamUpperLower, tempkm, tempkn,
-                                    A(k, k), Wu(p, k) );
-            }
-        }
-    }
-    else {
-        involved = 0;
-        for ( n = k+1; n < A->nt; n++ ) {
-            if ( chameleon_involved_in_panelk_2dbc( A, n ) ) {
-                involved = 1;
-                break;
+                                    A(k, k), Wu(A->myrank, k) );
             }
         }
-        if ( involved ) {
-            INSERT_TASK_zlacpy( options, ChamUpperLower, tempkm, tempkn,
-                                A(k, k), Wu(A->myrank, k) );
-        }
     }
 #else
     INSERT_TASK_zlacpy( options, ChamUpperLower, tempkm, tempkn,
-- 
GitLab


From b21a979cc02a11f4e5f850f5aa8b39c9e48d0050 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 11:41:56 +0100
Subject: [PATCH 07/15] compute/gepdf: protect declaration of descriptors D1
 and D2

---
 compute/zgepdf_qr.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/compute/zgepdf_qr.c b/compute/zgepdf_qr.c
index 6ea672f01..787813328 100644
--- a/compute/zgepdf_qr.c
+++ b/compute/zgepdf_qr.c
@@ -85,8 +85,11 @@ int CHAMELEON_zgepdf_qr_Tile( int doqr, int optid,
     CHAM_context_t     *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t   request = RUNTIME_REQUEST_INITIALIZER;
-    CHAM_desc_t         D1, *D1ptr = NULL;
-    CHAM_desc_t         D2, *D2ptr = NULL;
+#if defined(CHAMELEON_COPY_DIAG)
+    CHAM_desc_t         D1, D2;
+#endif
+    CHAM_desc_t        *D1ptr = NULL;
+    CHAM_desc_t        *D2ptr = NULL;
     int                 status;
 
     chamctxt = chameleon_context_self();
-- 
GitLab


From 30bcd5516e47d8f9ab27456720404b7e3a65f53a Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 09:49:47 +0100
Subject: [PATCH 08/15] testings: Protect declaration of api field for vendor
 testings

---
 testing/testing_zgemm.c  | 3 ++-
 testing/testing_zgetrf.c | 2 ++
 testing/testing_zhemm.c  | 2 ++
 testing/testing_zher2k.c | 2 ++
 testing/testing_zherk.c  | 2 ++
 testing/testing_zlange.c | 2 ++
 testing/testing_zlanhe.c | 2 ++
 testing/testing_zlansy.c | 2 ++
 testing/testing_zlantr.c | 2 ++
 testing/testing_zlauum.c | 2 ++
 testing/testing_zposv.c  | 2 ++
 testing/testing_zpotrf.c | 2 ++
 testing/testing_zpotri.c | 2 ++
 testing/testing_zpotrs.c | 2 ++
 testing/testing_zsymm.c  | 2 ++
 testing/testing_zsyr2k.c | 2 ++
 testing/testing_zsyrk.c  | 2 ++
 testing/testing_ztrmm.c  | 2 ++
 testing/testing_ztrsm.c  | 2 ++
 19 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/testing/testing_zgemm.c b/testing/testing_zgemm.c
index 666dde7aa..9d71f589c 100644
--- a/testing/testing_zgemm.c
+++ b/testing/testing_zgemm.c
@@ -140,7 +140,9 @@ testing_zgemm_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int          api    = parameters_getvalue_int( "api" );
+#endif
     int          nb     = run_arg_get_nb( args );
     cham_trans_t transA = run_arg_get_trans( args, "transA", ChamNoTrans );
     cham_trans_t transB = run_arg_get_trans( args, "transB", ChamNoTrans );
@@ -235,7 +237,6 @@ testing_zgemm_std( run_arg_list_t *args, int check )
     free( B );
     free( C );
 
-    (void)api;
     (void)check;
     return hres;
 }
diff --git a/testing/testing_zgetrf.c b/testing/testing_zgetrf.c
index fca667603..1db2d0030 100644
--- a/testing/testing_zgetrf.c
+++ b/testing/testing_zgetrf.c
@@ -166,7 +166,9 @@ testing_zgetrf_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int         api   = parameters_getvalue_int( "api" );
+#endif
     int         nb    = run_arg_get_nb( args );
     int         N     = run_arg_get_int( args, "N", 1000 );
     int         M     = run_arg_get_int( args, "M", N );
diff --git a/testing/testing_zhemm.c b/testing/testing_zhemm.c
index 642cf04b9..35a69847e 100644
--- a/testing/testing_zhemm.c
+++ b/testing/testing_zhemm.c
@@ -133,7 +133,9 @@ testing_zhemm_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int                   api   = parameters_getvalue_int( "api" );
+#endif
     int                   nb    = run_arg_get_nb( args );
     cham_side_t           side  = run_arg_get_side( args, "side", ChamLeft );
     cham_uplo_t           uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_zher2k.c b/testing/testing_zher2k.c
index f0d9b8905..5fd3a40db 100644
--- a/testing/testing_zher2k.c
+++ b/testing/testing_zher2k.c
@@ -126,7 +126,9 @@ testing_zher2k_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int                   api   = parameters_getvalue_int( "api" );
+#endif
     int                   nb    = run_arg_get_nb( args );
     cham_trans_t          trans = run_arg_get_trans( args, "trans", ChamNoTrans );
     cham_uplo_t           uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_zherk.c b/testing/testing_zherk.c
index f6b1be86d..f84e20b80 100644
--- a/testing/testing_zherk.c
+++ b/testing/testing_zherk.c
@@ -120,7 +120,9 @@ testing_zherk_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int          api   = parameters_getvalue_int( "api" );
+#endif
     int          nb    = run_arg_get_nb( args );
     cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
     cham_uplo_t  uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_zlange.c b/testing/testing_zlange.c
index 710e02181..8daf2aae3 100644
--- a/testing/testing_zlange.c
+++ b/testing/testing_zlange.c
@@ -121,7 +121,9 @@ testing_zlange_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int             api       = parameters_getvalue_int( "api" );
+#endif
     int             nb        = run_arg_get_nb( args );
     cham_normtype_t norm_type = run_arg_get_ntype( args, "norm", ChamMaxNorm );
     int             N         = run_arg_get_int( args, "N", 1000 );
diff --git a/testing/testing_zlanhe.c b/testing/testing_zlanhe.c
index 21ff4406d..fd457fabb 100644
--- a/testing/testing_zlanhe.c
+++ b/testing/testing_zlanhe.c
@@ -119,7 +119,9 @@ testing_zlanhe_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int             api       = parameters_getvalue_int( "api" );
+#endif
     int             nb        = run_arg_get_nb( args );
     cham_normtype_t norm_type = run_arg_get_ntype( args, "norm", ChamMaxNorm );
     cham_uplo_t     uplo      = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_zlansy.c b/testing/testing_zlansy.c
index b0db95639..dc9526aa3 100644
--- a/testing/testing_zlansy.c
+++ b/testing/testing_zlansy.c
@@ -119,7 +119,9 @@ testing_zlansy_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int                   api       = parameters_getvalue_int( "api" );
+#endif
     int                   nb        = run_arg_get_nb( args );
     cham_normtype_t       norm_type = run_arg_get_ntype( args, "norm", ChamMaxNorm );
     cham_uplo_t           uplo      = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_zlantr.c b/testing/testing_zlantr.c
index e41eb2bcd..02f893a65 100644
--- a/testing/testing_zlantr.c
+++ b/testing/testing_zlantr.c
@@ -143,7 +143,9 @@ testing_zlantr_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int             api       = parameters_getvalue_int( "api" );
+#endif
     int             nb        = run_arg_get_nb( args );
     cham_normtype_t norm_type = run_arg_get_ntype( args, "norm", ChamMaxNorm );
     cham_uplo_t     uplo      = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_zlauum.c b/testing/testing_zlauum.c
index 401b1f6b5..fe064eaf7 100644
--- a/testing/testing_zlauum.c
+++ b/testing/testing_zlauum.c
@@ -93,7 +93,9 @@ testing_zlauum_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int         api   = parameters_getvalue_int( "api" );
+#endif
     int         nb    = run_arg_get_nb( args );
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
diff --git a/testing/testing_zposv.c b/testing/testing_zposv.c
index 1ec3a85f5..c2a739a9d 100644
--- a/testing/testing_zposv.c
+++ b/testing/testing_zposv.c
@@ -115,7 +115,9 @@ testing_zposv_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int         api   = parameters_getvalue_int( "api" );
+#endif
     int         nb    = run_arg_get_nb( args );
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
diff --git a/testing/testing_zpotrf.c b/testing/testing_zpotrf.c
index 264fb2711..971de441a 100644
--- a/testing/testing_zpotrf.c
+++ b/testing/testing_zpotrf.c
@@ -90,7 +90,9 @@ testing_zpotrf_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int         api   = parameters_getvalue_int( "api" );
+#endif
     int         nb    = run_arg_get_nb( args );
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
diff --git a/testing/testing_zpotri.c b/testing/testing_zpotri.c
index 91ce688f9..bddbef90a 100644
--- a/testing/testing_zpotri.c
+++ b/testing/testing_zpotri.c
@@ -93,7 +93,9 @@ testing_zpotri_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int         api   = parameters_getvalue_int( "api" );
+#endif
     int         nb    = run_arg_get_nb( args );
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
diff --git a/testing/testing_zpotrs.c b/testing/testing_zpotrs.c
index 718e3da1d..bc87dbe7a 100644
--- a/testing/testing_zpotrs.c
+++ b/testing/testing_zpotrs.c
@@ -105,7 +105,9 @@ testing_zpotrs_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int         api   = parameters_getvalue_int( "api" );
+#endif
     int         nb    = run_arg_get_nb( args );
     cham_uplo_t uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
     int         N     = run_arg_get_int( args, "N", 1000 );
diff --git a/testing/testing_zsymm.c b/testing/testing_zsymm.c
index 56d6b331f..527be00a1 100644
--- a/testing/testing_zsymm.c
+++ b/testing/testing_zsymm.c
@@ -133,7 +133,9 @@ testing_zsymm_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int                   api   = parameters_getvalue_int( "api" );
+#endif
     int                   nb    = run_arg_get_nb( args );
     cham_side_t           side  = run_arg_get_side( args, "side", ChamLeft );
     cham_uplo_t           uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_zsyr2k.c b/testing/testing_zsyr2k.c
index e7a3506a8..d6cd91f50 100644
--- a/testing/testing_zsyr2k.c
+++ b/testing/testing_zsyr2k.c
@@ -126,7 +126,9 @@ testing_zsyr2k_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int                   api   = parameters_getvalue_int( "api" );
+#endif
     int                   nb    = run_arg_get_nb( args );
     cham_trans_t          trans = run_arg_get_trans( args, "trans", ChamNoTrans );
     cham_uplo_t           uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_zsyrk.c b/testing/testing_zsyrk.c
index cede56702..4517f1fa0 100644
--- a/testing/testing_zsyrk.c
+++ b/testing/testing_zsyrk.c
@@ -120,7 +120,9 @@ testing_zsyrk_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int          api   = parameters_getvalue_int( "api" );
+#endif
     int          nb    = run_arg_get_nb( args );
     cham_trans_t trans = run_arg_get_trans( args, "trans", ChamNoTrans );
     cham_uplo_t  uplo  = run_arg_get_uplo( args, "uplo", ChamUpper );
diff --git a/testing/testing_ztrmm.c b/testing/testing_ztrmm.c
index 96ad81fe7..3b69d3802 100644
--- a/testing/testing_ztrmm.c
+++ b/testing/testing_ztrmm.c
@@ -114,7 +114,9 @@ testing_ztrmm_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int                   api   = parameters_getvalue_int( "api" );
+#endif
     int                   nb    = run_arg_get_nb( args );
     cham_trans_t          trans = run_arg_get_trans( args, "trans", ChamNoTrans );
     cham_side_t           side  = run_arg_get_side( args, "side", ChamLeft );
diff --git a/testing/testing_ztrsm.c b/testing/testing_ztrsm.c
index 52cfd4017..aa7ef6353 100644
--- a/testing/testing_ztrsm.c
+++ b/testing/testing_ztrsm.c
@@ -109,7 +109,9 @@ testing_ztrsm_std( run_arg_list_t *args, int check )
     int        hres      = 0;
 
     /* Read arguments */
+#if !defined(CHAMELEON_TESTINGS_VENDOR)
     int                   api   = parameters_getvalue_int( "api" );
+#endif
     int                   nb    = run_arg_get_nb( args );
     cham_trans_t          trans = run_arg_get_trans( args, "trans", ChamNoTrans );
     cham_side_t           side  = run_arg_get_side( args, "side", ChamLeft );
-- 
GitLab


From 807b82ec12c39c7a73692e4037f51a2e16ef45c7 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 11:41:18 +0100
Subject: [PATCH 09/15] testing: fix uninitialized info_solution value

---
 testing/testing_zcheck_aux.c | 2 +-
 testing/testing_zcheck_svd.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/testing/testing_zcheck_aux.c b/testing/testing_zcheck_aux.c
index 3eb81bfc6..d6b3158b8 100644
--- a/testing/testing_zcheck_aux.c
+++ b/testing/testing_zcheck_aux.c
@@ -631,7 +631,7 @@ int check_zscale_std( run_arg_list_t *args, cham_uplo_t uplo, int M, int N, CHAM
  */
 int check_zscale( run_arg_list_t *args, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *descAinit, CHAM_desc_t *descA )
 {
-    int info_solution;
+    int info_solution            = 0;
     int M                        = descA->m;
     int N                        = descA->n;
     int LDA                      = M;
diff --git a/testing/testing_zcheck_svd.c b/testing/testing_zcheck_svd.c
index 1bd74c699..6c6772ee2 100644
--- a/testing/testing_zcheck_svd.c
+++ b/testing/testing_zcheck_svd.c
@@ -227,7 +227,7 @@ int check_zgesvd_std( run_arg_list_t *args, cham_job_t jobu, cham_job_t jobvt, i
 int check_zgesvd( run_arg_list_t *args, cham_job_t jobu, cham_job_t jobvt, CHAM_desc_t *descAinit, CHAM_desc_t *descA,
                   double *Sinit, double *S, CHAMELEON_Complex64_t *U, int LDU, CHAMELEON_Complex64_t *Vt, int LDVt )
 {
-    int info_solution;
+    int info_solution = 0;
     int rank = CHAMELEON_Comm_rank();
     CHAMELEON_Complex64_t *Ainit = NULL;
     CHAMELEON_Complex64_t *A     = NULL;
-- 
GitLab


From ee83aef356463948bc36df26e5f9634f6d0651c8 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 10:20:16 +0100
Subject: [PATCH 10/15] parsec/codelet: add missing priority

---
 runtime/parsec/codelets/codelet_zlag2c.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/runtime/parsec/codelets/codelet_zlag2c.c b/runtime/parsec/codelets/codelet_zlag2c.c
index cf302b584..6b3a42250 100644
--- a/runtime/parsec/codelets/codelet_zlag2c.c
+++ b/runtime/parsec/codelets/codelet_zlag2c.c
@@ -53,7 +53,8 @@ void INSERT_TASK_zlag2c( const RUNTIME_option_t *options,
     CHAM_tile_t *tileA = A->get_blktile( A, Am, An );
     CHAM_tile_t *tileB = B->get_blktile( B, Bm, Bn );
 
-    parsec_dtd_taskpool_insert_task(PARSEC_dtd_taskpool, CORE_zlag2c_parsec, "lag2c",
+    parsec_dtd_taskpool_insert_task(
+        PARSEC_dtd_taskpool, CORE_zlag2c_parsec, options->priority, "lag2c",
         sizeof(int),                        &m,         VALUE,
         sizeof(int),                        &n,         VALUE,
         PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
-- 
GitLab


From 2c404c92fab5b130879b07c3c85b01920b32b59b Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 11:49:50 +0100
Subject: [PATCH 11/15] parsec/codelet: add missing return
 PARSEC_HOOK_RETURN_DONE

---
 runtime/parsec/codelets/codelet_ipiv.c   | 3 +++
 runtime/parsec/codelets/codelet_map.c    | 9 +++++++++
 runtime/parsec/codelets/codelet_zlaswp.c | 6 ++++--
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/runtime/parsec/codelets/codelet_ipiv.c b/runtime/parsec/codelets/codelet_ipiv.c
index e111c1e95..b6d582e5a 100644
--- a/runtime/parsec/codelets/codelet_ipiv.c
+++ b/runtime/parsec/codelets/codelet_ipiv.c
@@ -50,6 +50,9 @@ CORE_ipiv_to_perm_parsec( parsec_execution_stream_t *context,
         this_task, &m0, &m, &k, &ipiv, &perm, &invp );
 
     CORE_ipiv_to_perm( m0, m, k, ipiv, perm, invp );
+
+    (void)context;
+    return PARSEC_HOOK_RETURN_DONE;
 }
 
 void INSERT_TASK_ipiv_to_perm( const RUNTIME_option_t *options,
diff --git a/runtime/parsec/codelets/codelet_map.c b/runtime/parsec/codelets/codelet_map.c
index 66087e230..6874d16e5 100644
--- a/runtime/parsec/codelets/codelet_map.c
+++ b/runtime/parsec/codelets/codelet_map.c
@@ -47,6 +47,9 @@ CORE_map_one_parsec( parsec_execution_stream_t *context,
                              descA, &tileA );
 
     free( pargs );
+
+    (void)context;
+    return PARSEC_HOOK_RETURN_DONE;
 }
 
 static inline int
@@ -79,6 +82,9 @@ CORE_map_two_parsec( parsec_execution_stream_t *context,
                              descA, &tileA, descB, &tileB );
 
     free( pargs );
+
+    (void)context;
+    return PARSEC_HOOK_RETURN_DONE;
 }
 
 static inline int
@@ -119,6 +125,9 @@ CORE_map_three_parsec( parsec_execution_stream_t *context,
                              descA, &tileA, descB, &tileB, descC, &tileC );
 
     free( pargs );
+
+    (void)context;
+    return PARSEC_HOOK_RETURN_DONE;
 }
 
 void INSERT_TASK_map( const RUNTIME_option_t *options,
diff --git a/runtime/parsec/codelets/codelet_zlaswp.c b/runtime/parsec/codelets/codelet_zlaswp.c
index fd938917d..12aaf7089 100644
--- a/runtime/parsec/codelets/codelet_zlaswp.c
+++ b/runtime/parsec/codelets/codelet_zlaswp.c
@@ -26,9 +26,10 @@ CORE_zlaswp_get_parsec( parsec_execution_stream_t *context,
     int          m0, m, n, k, lda, ldb, *perm;
     CHAMELEON_Complex64_t *A, *B;
 
-    parsec_dtd_unpack_args( this_task, &m0, &m, &n, &k, &A, lda, &B, ldb, &perm );
+    parsec_dtd_unpack_args( this_task, &m0, &m, &n, &k, &A, &lda, &B, &ldb, &perm );
 
     CORE_zlaswp_get( m0, m, n, k, A, lda, B, ldb, perm );
+    return PARSEC_HOOK_RETURN_DONE;
 }
 
 void INSERT_TASK_zlaswp_get( const RUNTIME_option_t *options,
@@ -62,9 +63,10 @@ CORE_zlaswp_set_parsec( parsec_execution_stream_t *context,
     int          m0, m, n, k, lda, ldb, *invp;
     CHAMELEON_Complex64_t *A, *B;
 
-    parsec_dtd_unpack_args( this_task, &m0, &m, &n, &k, &A, lda, &B, ldb, &invp );
+    parsec_dtd_unpack_args( this_task, &m0, &m, &n, &k, &A, &lda, &B, &ldb, &invp );
 
     CORE_zlaswp_set( m0, m, n, k, A, lda, B, ldb, invp );
+    return PARSEC_HOOK_RETURN_DONE;
 }
 
 void INSERT_TASK_zlaswp_set( const RUNTIME_option_t *options,
-- 
GitLab


From 5245b134fa0a8fce737114c0cb5de9dd84148859 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 10:22:01 +0100
Subject: [PATCH 12/15] quark/codelet: remove unused variable in lacpy

---
 runtime/quark/codelets/codelet_zlacpy.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/runtime/quark/codelets/codelet_zlacpy.c b/runtime/quark/codelets/codelet_zlacpy.c
index 472dbe1ac..bf814013b 100644
--- a/runtime/quark/codelets/codelet_zlacpy.c
+++ b/runtime/quark/codelets/codelet_zlacpy.c
@@ -31,7 +31,6 @@ static inline void CORE_zlacpy_quark(Quark *quark)
 {
     cham_uplo_t uplo;
     int M, N;
-    int LDA, LDB;
     CHAM_tile_t *tileA, *tileB;
 
     quark_unpack_args_5(quark, uplo, M, N, tileA, tileB);
-- 
GitLab


From 01075844a5df4405738ec1e89fde331ff5b0cad0 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Wed, 19 Feb 2025 23:55:55 +0100
Subject: [PATCH 13/15] hip: Fix half definition when using hip

---
 gpuhipblas/compute/hip_hgemm.c  | 10 +++++-----
 gpuhipblas/include/gpuhipblas.h | 10 +++++-----
 include/chameleon/types.h       |  2 ++
 3 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/gpuhipblas/compute/hip_hgemm.c b/gpuhipblas/compute/hip_hgemm.c
index 784f7b00f..dbd6b1aad 100644
--- a/gpuhipblas/compute/hip_hgemm.c
+++ b/gpuhipblas/compute/hip_hgemm.c
@@ -19,11 +19,11 @@
 int
 HIP_hgemm( cham_trans_t transa, cham_trans_t transb,
            int m, int n, int k,
-           const CHAMELEON_Real16_t *alpha,
-           const CHAMELEON_Real16_t *A, int lda,
-           const CHAMELEON_Real16_t *B, int ldb,
-           const CHAMELEON_Real16_t *beta,
-           CHAMELEON_Real16_t *C, int ldc,
+           const hipblasHalf *alpha,
+           const hipblasHalf *A, int lda,
+           const hipblasHalf *B, int ldb,
+           const hipblasHalf *beta,
+           hipblasHalf *C, int ldc,
            hipblasHandle_t handle )
 {
     hipblasStatus_t rc;
diff --git a/gpuhipblas/include/gpuhipblas.h b/gpuhipblas/include/gpuhipblas.h
index 3a596b33e..ed9497798 100644
--- a/gpuhipblas/include/gpuhipblas.h
+++ b/gpuhipblas/include/gpuhipblas.h
@@ -62,11 +62,11 @@ BEGIN_C_DECLS
 
 int HIP_hgemm( cham_trans_t transa, cham_trans_t transb,
                int m, int n, int k,
-               const CHAMELEON_Real16_t *alpha,
-               const CHAMELEON_Real16_t *A, int lda,
-               const CHAMELEON_Real16_t *B, int ldb,
-               const CHAMELEON_Real16_t *beta,
-               CHAMELEON_Real16_t *C, int ldc,
+               const hipblasHalf *alpha,
+               const hipblasHalf *A, int lda,
+               const hipblasHalf *B, int ldb,
+               const hipblasHalf *beta,
+               hipblasHalf *C, int ldc,
                hipblasHandle_t handle );
 
 END_C_DECLS
diff --git a/include/chameleon/types.h b/include/chameleon/types.h
index dbf3fc430..954b0c9be 100644
--- a/include/chameleon/types.h
+++ b/include/chameleon/types.h
@@ -109,6 +109,8 @@ typedef int8_t cham_bool_t;
  */
 #if defined(__cplusplus) && defined(CHAMELEON_USE_CUDA) && (CUDA_VERSION >= 7500)
 typedef __half CHAMELEON_Real16_t;
+#elif defined(CHAMELEON_USE_HIP) && defined(__HIP__)
+typedef hipblasHalf CHAMELEON_Real16_t;
 #else
 /* use short for cuda older than 7.5 and non-cuda files
  * corresponding routines would not work anyway since there is no half precision */
-- 
GitLab


From a90e170940b562d747c845a099e94ece94941e01 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Fri, 21 Feb 2025 00:56:10 +0100
Subject: [PATCH 14/15] starpu/cmake: Bugfix for the multiple definition of
 __HIP_PLATFORM_AMD__ to null and 1

---
 runtime/starpu/CMakeLists.txt | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/runtime/starpu/CMakeLists.txt b/runtime/starpu/CMakeLists.txt
index 17e0ddd6c..801a1f89a 100644
--- a/runtime/starpu/CMakeLists.txt
+++ b/runtime/starpu/CMakeLists.txt
@@ -39,6 +39,17 @@ include(CheckCSourceRuns)
 set(CHAMELEON_STARPU_VERSION "1.3" CACHE STRING "necessary STARPU API version")
 
 find_package(STARPU ${CHAMELEON_STARPU_VERSION} REQUIRED)
+
+# Bug fix of hip defining to null the variable in the perl script used
+# by starpu, and to 1 in the cmake targe file used by chameleon
+# -------------------------------------------------------------
+get_target_property(_DEFS MORSE::STARPU INTERFACE_COMPILE_OPTIONS)
+if (_DEFS)
+  list(TRANSFORM _DEFS REPLACE "-D__HIP_PLATFORM_AMD__=" "-D__HIP_PLATFORM_AMD__=1" )
+  set_target_properties(MORSE::STARPU PROPERTIES INTERFACE_COMPILE_OPTIONS "${_DEFS}")
+endif()
+# -------------------------------------------------------------
+
 morse_export_imported_target(MORSE STARPU starpu chameleon)
 
 # check available functions
-- 
GitLab


From 2e328bb60327a2998d24f0cf91f7b78504cd4ad8 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Thu, 20 Feb 2025 10:54:50 +0100
Subject: [PATCH 15/15] starpu: Protect interface codelet in simulation mode

---
 compute/pzgebrd.c                                    |  6 +++++-
 compute/zprint.c                                     |  8 ++++++--
 runtime/starpu/codelets/codelet_ipiv.c               | 12 +++++-------
 runtime/starpu/codelets/codelet_zgetrf_blocked.c     |  4 ++--
 .../starpu/codelets/codelet_zgetrf_nopiv_percol.c    |  2 +-
 runtime/starpu/interface/cppi_interface.c            |  7 ++++++-
 6 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/compute/pzgebrd.c b/compute/pzgebrd.c
index fbb80e91f..40b50c32e 100644
--- a/compute/pzgebrd.c
+++ b/compute/pzgebrd.c
@@ -178,8 +178,11 @@ chameleon_pzgebrd_gb2bd( cham_job_t jobu, cham_job_t jobvt, CHAM_desc_t *A,
     CHAM_desc_t descAB;
     cham_uplo_t uplo;
     int M, N, MINMN, NB, LDAB, ABn;
+#if !defined(CHAMELEON_SIMULATION)
     int info;
     int KL, KU;
+    char gbbrd_vect;
+#endif
 
     chamctxt = chameleon_context_self();
     if ( sequence->status != CHAMELEON_SUCCESS ) {
@@ -205,13 +208,13 @@ chameleon_pzgebrd_gb2bd( cham_job_t jobu, cham_job_t jobvt, CHAM_desc_t *A,
     /* Convert matrix to band form */
     chameleon_pztile2band( uplo, A, &descAB, sequence, request );
 
+#if !defined(CHAMELEON_SIMULATION)
     /* NCC = 0, C = NULL, we do not update any matrix with new singular vectors */
     /* On exit, AB = U (S +~ E) VT */
     KL = uplo == ChamUpper ? 0  : NB;
     KU = uplo == ChamUpper ? NB : 0;
 
     /* Manage the case where only singular values are required */
-    char gbbrd_vect;
     if ( jobu == ChamNoVec ) {
         if ( jobvt == ChamNoVec ) {
             gbbrd_vect = 'N';
@@ -228,6 +231,7 @@ chameleon_pzgebrd_gb2bd( cham_job_t jobu, cham_job_t jobvt, CHAM_desc_t *A,
             gbbrd_vect = 'B';
         }
     }
+#endif
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( &descAB, sequence );
diff --git a/compute/zprint.c b/compute/zprint.c
index 982a69154..61c1398fd 100644
--- a/compute/zprint.c
+++ b/compute/zprint.c
@@ -26,6 +26,7 @@ struct zprint_args_s {
     const char *header;
 };
 
+#if !defined(CHAMELEON_SIMULATION)
 static inline int
 zprint_cpu( void *op_args,
             cham_uplo_t uplo, int m, int n, int ndata,
@@ -43,17 +44,20 @@ zprint_cpu( void *op_args,
     }
     assert( tileA->format & CHAMELEON_TILE_FULLRANK );
 
-#if !defined(CHAMELEON_SIMULATION)
     CORE_zprint( options->file, options->header, uplo,
                  tempmm, tempnn, m, n, A, lda );
-#endif
 
     return 0;
 }
+#endif
 
 static cham_map_operator_t zprint_map = {
     .name     = "zprint",
+#if !defined(CHAMELEON_SIMULATION)
     .cpufunc  = zprint_cpu,
+#else
+    .cpufunc  = NULL,
+#endif
     .cudafunc = NULL,
     .hipfunc  = NULL,
 };
diff --git a/runtime/starpu/codelets/codelet_ipiv.c b/runtime/starpu/codelets/codelet_ipiv.c
index 35de49f76..4498c63f3 100644
--- a/runtime/starpu/codelets/codelet_ipiv.c
+++ b/runtime/starpu/codelets/codelet_ipiv.c
@@ -21,16 +21,14 @@
 
 static void cl_ipiv_init_cpu_func(void *descr[], void *cl_arg)
 {
+#if !defined(CHAMELEON_SIMULATION)
     int *ipiv = (int *)STARPU_VECTOR_GET_PTR(descr[0]);
+    int i, m0, n;
 
-#if !defined(CHAMELEON_SIMULATION)
-    {
-        int i, m0, n;
-        starpu_codelet_unpack_args( cl_arg, &m0, &n );
+    starpu_codelet_unpack_args( cl_arg, &m0, &n );
 
-        for( i=0; i<n; i++ ) {
-            ipiv[i] = m0 + i + 1;
-        }
+    for( i=0; i<n; i++ ) {
+        ipiv[i] = m0 + i + 1;
     }
 #endif
 }
diff --git a/runtime/starpu/codelets/codelet_zgetrf_blocked.c b/runtime/starpu/codelets/codelet_zgetrf_blocked.c
index eab7e0ec9..6bbc5f0c4 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_blocked.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_blocked.c
@@ -280,9 +280,9 @@ void INSERT_TASK_zgetrf_blocked_offdiag( const RUNTIME_option_t *options,
         0 );
 }
 
-static const CHAMELEON_Complex64_t zone  = (CHAMELEON_Complex64_t)1.0;
-
 #if !defined(CHAMELEON_SIMULATION)
+static const CHAMELEON_Complex64_t zone = (CHAMELEON_Complex64_t)1.0;
+
 static void cl_zgetrf_blocked_trsm_cpu_func(void *descr[], void *cl_arg)
 {
     int                    m, n, h, ib;
diff --git a/runtime/starpu/codelets/codelet_zgetrf_nopiv_percol.c b/runtime/starpu/codelets/codelet_zgetrf_nopiv_percol.c
index d416997bc..eb85ee9df 100644
--- a/runtime/starpu/codelets/codelet_zgetrf_nopiv_percol.c
+++ b/runtime/starpu/codelets/codelet_zgetrf_nopiv_percol.c
@@ -23,10 +23,10 @@
 CHAMELEON_CL_CB( zgetrf_nopiv_percol_diag, cti_handle_get_m(task->handles[0]), 0, 0, M )
 CHAMELEON_CL_CB( zgetrf_nopiv_percol_trsm, cti_handle_get_m(task->handles[0]), 0, 0, M )
 
+#if !defined(CHAMELEON_SIMULATION)
 static const CHAMELEON_Complex64_t zone  = (CHAMELEON_Complex64_t) 1.0;
 static const CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
 
-#if !defined(CHAMELEON_SIMULATION)
 static void cl_zgetrf_nopiv_percol_diag_cpu_func( void *descr[], void *cl_arg )
 {
     CHAM_tile_t           *tileA, *tileU;
diff --git a/runtime/starpu/interface/cppi_interface.c b/runtime/starpu/interface/cppi_interface.c
index 7efa721f4..d788c66d8 100644
--- a/runtime/starpu/interface/cppi_interface.c
+++ b/runtime/starpu/interface/cppi_interface.c
@@ -355,7 +355,9 @@ struct starpu_data_interface_ops cppi_ops =
 };
 
 
-static int compare_pivots( cham_flttype_t type, int h, void * redux, void * input ){
+#if !defined(CHAMELEON_SIMULATION)
+static inline int
+compare_pivots( cham_flttype_t type, int h, void * redux, void * input ){
     if ( type == ChamRealFloat )
     {
         float *valredux = redux;
@@ -439,12 +441,14 @@ cl_cppi_redux_cpu_func(void *descr[], void *cl_arg)
 
     return;
 }
+#endif
 
 /*
  * Codelet definition
  */
 CODELETS_CPU(cppi_redux, cl_cppi_redux_cpu_func)
 
+#if !defined(CHAMELEON_SIMULATION)
 static void
 cl_cppi_init_redux_cpu_func( void *descr[], void *cl_arg )
 {
@@ -460,6 +464,7 @@ cl_cppi_init_redux_cpu_func( void *descr[], void *cl_arg )
     memset( cppi_redux->pivot.pivrow,  0, size );
     memset( cppi_redux->pivot.diagrow, 0, size );
 }
+#endif
 
 /*
  * Codelet definition
-- 
GitLab