From 63273913f1cbb3b30e99e798a074f72527d6bd8f Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Mon, 22 Jan 2018 11:47:18 +0100
Subject: [PATCH] Remove references to morse_pzlapack_to_tile and
 morse_pztile_to_lapack

---
 control/CMakeLists.txt |   1 -
 control/common.h       |   1 -
 control/tile.c         | 101 +++++++++++++++++------------------------
 control/tile.h         |  58 -----------------------
 4 files changed, 41 insertions(+), 120 deletions(-)
 delete mode 100644 control/tile.h

diff --git a/control/CMakeLists.txt b/control/CMakeLists.txt
index 0fd19f588..5cc1b6b04 100644
--- a/control/CMakeLists.txt
+++ b/control/CMakeLists.txt
@@ -50,7 +50,6 @@ set(CHAMELEON_HDRS
     global.h
     morse_f77.h
     morsewinthread.h
-    tile.h
     workspace.h
     )
 
diff --git a/control/common.h b/control/common.h
index 81bce72c4..07c3adccc 100644
--- a/control/common.h
+++ b/control/common.h
@@ -78,7 +78,6 @@
 #include "control/auxiliary.h"
 #include "control/context.h"
 #include "control/descriptor.h"
-#include "control/tile.h"
 #include "control/async.h"
 
 /*******************************************************************************
diff --git a/control/tile.c b/control/tile.c
index ea216a770..34491a212 100644
--- a/control/tile.c
+++ b/control/tile.c
@@ -29,10 +29,8 @@
  * @brief Group routines exposed to users for matrices conversion LAPACK-Tile
  *
  */
-
 #include "control/common.h"
 #include "control/auxiliary.h"
-#include "control/tile.h"
 
 /** ***************************************************************************
  *
@@ -62,6 +60,7 @@ int MORSE_Lapack_to_Tile(void *Af77, int LDA, MORSE_desc_t *A)
     MORSE_context_t  *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t   request;
+    MORSE_desc_t B;
     int status;
 
     morse = morse_context_self();
@@ -74,36 +73,27 @@ int MORSE_Lapack_to_Tile(void *Af77, int LDA, MORSE_desc_t *A)
         morse_error("MORSE_Lapack_to_Tile", "invalid descriptor");
         return MORSE_ERR_ILLEGAL_VALUE;
     }
+
+    /* Create the B descriptor to handle the Lapack format matrix */
+    B = morse_desc_init_user(
+        A->dtyp, A->mb, A->nb, A->bsiz,
+        LDA, A->n, 0, 0, A->m, A->n, 1, 1,
+        morse_getaddr_cm, morse_getblkldd_cm, NULL );
+    B.mat  = Af77;
+    B.styp = MorseCM;
+
+    RUNTIME_desc_create( &B );
+
     morse_sequence_create(morse, &sequence);
-    switch( A->dtyp ) {
-#if defined(PRECISION_s)
-    case MorseRealFloat:
-        morse_pslapack_to_tile(Af77, LDA, A, sequence, &request);
-        break;
-#endif
-
-#if defined(PRECISION_d)
-    case MorseRealDouble:
-        morse_pdlapack_to_tile(Af77, LDA, A, sequence, &request);
-        break;
-#endif
-
-#if defined(PRECISION_c)
-    case MorseComplexFloat:
-        morse_pclapack_to_tile(Af77, LDA, A, sequence, &request);
-        break;
-#endif
-
-#if defined(PRECISION_z)
-    case MorseComplexDouble:
-        morse_pzlapack_to_tile(Af77, LDA, A, sequence, &request);
-        break;
-#endif
-
-    default:
-        morse_error("MORSE_Lapack_to_Tile", "Type unknown");
-    }
-    RUNTIME_barrier(morse);
+
+    morse_pzlacpy( MorseUpperLower, &B, A, sequence, &request );
+
+    RUNTIME_desc_flush( &B, sequence );
+    RUNTIME_desc_flush(  A, sequence );
+    RUNTIME_sequence_wait( morse, sequence );
+
+    RUNTIME_desc_destroy( &B );
+
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
     return status;
@@ -137,6 +127,7 @@ int MORSE_Tile_to_Lapack(MORSE_desc_t *A, void *Af77, int LDA)
     MORSE_context_t  *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t   request;
+    MORSE_desc_t      B;
     int status;
 
     morse = morse_context_self();
@@ -149,36 +140,26 @@ int MORSE_Tile_to_Lapack(MORSE_desc_t *A, void *Af77, int LDA)
         morse_error("MORSE_Tile_to_Lapack", "invalid descriptor");
         return MORSE_ERR_ILLEGAL_VALUE;
     }
+
+    /* Create the B descriptor to handle the Lapack format matrix */
+    B = morse_desc_init_user(
+        A->dtyp, A->mb, A->nb, A->bsiz,
+        LDA, A->n, 0, 0, A->m, A->n, 1, 1,
+        morse_getaddr_cm, morse_getblkldd_cm, NULL );
+    B.mat  = Af77;
+    B.styp = MorseCM;
+
+    RUNTIME_desc_create( &B );
+
     morse_sequence_create(morse, &sequence);
-    switch( A->dtyp ) {
-#if defined(PRECISION_s)
-    case MorseRealFloat:
-        morse_pstile_to_lapack(A, Af77, LDA, sequence, &request);
-        break;
-#endif
-
-#if defined(PRECISION_d)
-    case MorseRealDouble:
-        morse_pdtile_to_lapack(A, Af77, LDA, sequence, &request);
-        break;
-#endif
-
-#if defined(PRECISION_c)
-    case MorseComplexFloat:
-        morse_pctile_to_lapack(A, Af77, LDA, sequence, &request);
-        break;
-#endif
-
-#if defined(PRECISION_z)
-    case MorseComplexDouble:
-        morse_pztile_to_lapack(A, Af77, LDA, sequence, &request);
-        break;
-#endif
-
-    default:
-        morse_error("MORSE_Tile_to_Lapack", "Type unknown");
-    }
-    RUNTIME_barrier(morse);
+    morse_pzlacpy( MorseUpperLower, A, &B, sequence, &request );
+
+    RUNTIME_desc_flush(  A, sequence );
+    RUNTIME_desc_flush( &B, sequence );
+    RUNTIME_sequence_wait( morse, sequence );
+
+    RUNTIME_desc_destroy( &B );
+
     status = sequence->status;
     morse_sequence_destroy(morse, sequence);
     return status;
diff --git a/control/tile.h b/control/tile.h
deleted file mode 100644
index 95f61e65a..000000000
--- a/control/tile.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- *
- * @copyright (c) 2009-2014 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2014 Inria. All rights reserved.
- * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
- *
- **/
-
-/**
- *
- * @file tile.h
- *
- *  MORSE auxiliary routines
- *  MORSE is a software package provided by Univ. of Tennessee,
- *  Univ. of California Berkeley and Univ. of Colorado Denver
- *
- * @version 0.9.0
- * @author Jakub Kurzak
- * @author Cedric Castagnede
- * @date 2010-11-15
- *
- **/
-#ifndef _MORSE_TILE_H_
-#define _MORSE_TILE_H_
-
-#if defined( _WIN32 ) || defined( _WIN64 )
-typedef __int64 int64_t;
-#else
-#include <inttypes.h>
-#endif
-
-#define ELTADDR(A, type, m, n)  (type *)morse_geteltaddr(A, m, n)
-#define ELTLDD(A, k) ( ( (((k)-1)/(A).mb) + (A).i/(A).mb) < (A).lm1 ? (A).mb : (A).lm%(A).mb )
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
- *  Internal routines - dynamic scheduling
- **/
-void morse_pztile_to_lapack(MORSE_desc_t*, MORSE_Complex64_t*, int, MORSE_sequence_t *sequence, MORSE_request_t *request);
-void morse_pctile_to_lapack(MORSE_desc_t*, MORSE_Complex32_t*, int, MORSE_sequence_t *sequence, MORSE_request_t *request);
-void morse_pdtile_to_lapack(MORSE_desc_t*, double*, int, MORSE_sequence_t *sequence, MORSE_request_t *request);
-void morse_pstile_to_lapack(MORSE_desc_t*, float*, int, MORSE_sequence_t *sequence, MORSE_request_t *request);
-
-void morse_pzlapack_to_tile(MORSE_Complex64_t*, int, MORSE_desc_t*, MORSE_sequence_t *sequence, MORSE_request_t *request);
-void morse_pclapack_to_tile(MORSE_Complex32_t*, int, MORSE_desc_t*, MORSE_sequence_t *sequence, MORSE_request_t *request);
-void morse_pdlapack_to_tile(double*, int, MORSE_desc_t*, MORSE_sequence_t *sequence, MORSE_request_t *request);
-void morse_pslapack_to_tile(float*, int, MORSE_desc_t*, MORSE_sequence_t *sequence, MORSE_request_t *request);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-- 
GitLab