From 6745049ca614f3cacdebe41118a1378ed2a35ecb Mon Sep 17 00:00:00 2001
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Fri, 17 Mar 2017 14:51:34 +0100
Subject: [PATCH] Allow runtimes to have their own memory access macros

---
 control/descriptor.h                  | 9 ++++++---
 runtime/parsec/include/morse_parsec.h | 6 ++++++
 runtime/quark/include/morse_quark.h   | 6 ++++++
 runtime/starpu/include/morse_starpu.h | 6 ++++++
 4 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/control/descriptor.h b/control/descriptor.h
index 2981f9685..b41ddbc1d 100644
--- a/control/descriptor.h
+++ b/control/descriptor.h
@@ -208,13 +208,16 @@ inline static int morse_desc_islocal( const MORSE_desc_t *A, int m, int n )
     unsigned __morse_need_submit = 0;
 
 #define MORSE_ACCESS_R(A, Am, An) \
-    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1;
+    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
+    RUNTIME_ACCESS_R(A, Am, An)
 
 #define MORSE_ACCESS_W(A, Am, An) \
-    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1;
+    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
+    RUNTIME_ACCESS_W(A, Am, An)
 
 #define MORSE_ACCESS_RW(A, Am, An) \
-    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1;
+    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
+    RUNTIME_ACCESS_RW(A, Am, An)
 
 #define MORSE_RANK_CHANGED __morse_need_submit = 1;
 
diff --git a/runtime/parsec/include/morse_parsec.h b/runtime/parsec/include/morse_parsec.h
index 00acf344e..81f377211 100644
--- a/runtime/parsec/include/morse_parsec.h
+++ b/runtime/parsec/include/morse_parsec.h
@@ -24,4 +24,10 @@ typedef struct morse_parsec_desc_s morse_parsec_desc_t;
  */
 #define RTBLKADDR( desc, type, m, n ) ( dague_dtd_tile_of( DAGUE_dtd_handle, (desc)->schedopt, m, n ) )
 
+#define RUNTIME_ACCESS_R(A, Am, An)
+
+#define RUNTIME_ACCESS_W(A, Am, An)
+
+#define RUNTIME_ACCESS_RW(A, Am, An)
+
 #endif /* _MORSE_PARSEC_H_ */
diff --git a/runtime/quark/include/morse_quark.h b/runtime/quark/include/morse_quark.h
index 648c2c487..51c976e27 100644
--- a/runtime/quark/include/morse_quark.h
+++ b/runtime/quark/include/morse_quark.h
@@ -47,4 +47,10 @@ typedef struct quark_option_s {
  */
 #define RTBLKADDR( desc, type, m, n ) ( (type*)RUNTIME_desc_getaddr( desc, m, n ) )
 
+#define RUNTIME_ACCESS_R(A, Am, An)
+
+#define RUNTIME_ACCESS_W(A, Am, An)
+
+#define RUNTIME_ACCESS_RW(A, Am, An)
+
 #endif /* _MORSE_QUARK_H_ */
diff --git a/runtime/starpu/include/morse_starpu.h b/runtime/starpu/include/morse_starpu.h
index 2f0ff0356..8fc3650ca 100644
--- a/runtime/starpu/include/morse_starpu.h
+++ b/runtime/starpu/include/morse_starpu.h
@@ -86,4 +86,10 @@ typedef struct starpu_conf starpu_conf_t;
 
 void RUNTIME_set_reduction_methods(starpu_data_handle_t handle, MORSE_enum dtyp);
 
+#define RUNTIME_ACCESS_R(A, Am, An)
+
+#define RUNTIME_ACCESS_W(A, Am, An)
+
+#define RUNTIME_ACCESS_RW(A, Am, An)
+
 #endif /* _MORSE_STARPU_H_ */
-- 
GitLab