Skip to content

Commit bf6c887

Browse files
authored
Merge pull request #2122 from alex-mikheev/topic/oshmem_c11_generics
OSHMEM v1.3: c11 generics (DNM before #2103)
2 parents 13e53b4 + dd2405a commit bf6c887

File tree

11 files changed

+453
-93
lines changed

11 files changed

+453
-93
lines changed

oshmem/include/pshmem.h

Lines changed: 186 additions & 7 deletions
Large diffs are not rendered by default.

oshmem/include/pshmemx.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,10 @@ OSHMEM_DECLSPEC void pshmemx_int64_p(int64_t* addr, int64_t value, int pe);
5050
/*
5151
* Block data put routines
5252
*/
53-
OSHMEM_DECLSPEC void pshmemx_put16(void *target, const void *source, size_t len, int pe);
5453

5554
/*
5655
* Strided put routines
5756
*/
58-
OSHMEM_DECLSPEC void pshmemx_iput16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
5957

6058
/*
6159
* Elemental get routines
@@ -67,12 +65,10 @@ OSHMEM_DECLSPEC int64_t pshmemx_int64_g(const int64_t* addr, int pe);
6765
/*
6866
* Block data get routines
6967
*/
70-
OSHMEM_DECLSPEC void pshmemx_get16(void *target, const void *source, size_t len, int pe);
7168

7269
/*
7370
* Strided get routines
7471
*/
75-
OSHMEM_DECLSPEC void pshmemx_iget16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
7672

7773
/*
7874
* Atomic operations
@@ -156,16 +152,10 @@ OSHMEM_DECLSPEC void pshmemx_int64_prod_to_all(int64_t *target, const int64_t *s
156152
#define pshmem_int32_p pshmemx_int32_p
157153
#define pshmem_int64_p pshmemx_int64_p
158154

159-
#define pshmem_put16 pshmemx_put16
160-
#define pshmem_iput16 pshmemx_iput16
161-
162155
#define pshmem_int16_g pshmemx_int16_g
163156
#define pshmem_int32_g pshmemx_int32_g
164157
#define pshmem_int64_g pshmemx_int64_g
165158

166-
#define pshmem_get16 pshmemx_get16
167-
#define pshmem_iget16 pshmemx_iget16
168-
169159
#define pshmem_int32_swap pshmemx_int32_swap
170160
#define pshmem_int64_swap pshmemx_int64_swap
171161

oshmem/include/shmem.h.in

Lines changed: 189 additions & 6 deletions
Large diffs are not rendered by default.

oshmem/include/shmemx.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,10 @@ OSHMEM_DECLSPEC void shmemx_int64_p(int64_t* addr, int64_t value, int pe);
3535
/*
3636
* Block data put routines
3737
*/
38-
OSHMEM_DECLSPEC void shmemx_put16(void *target, const void *source, size_t len, int pe);
3938

4039
/*
4140
* Strided put routines
4241
*/
43-
OSHMEM_DECLSPEC void shmemx_iput16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
4442

4543
/*
4644
* Elemental get routines
@@ -52,12 +50,10 @@ OSHMEM_DECLSPEC int64_t shmemx_int64_g(const int64_t* addr, int pe);
5250
/*
5351
* Block data get routines
5452
*/
55-
OSHMEM_DECLSPEC void shmemx_get16(void *target, const void *source, size_t len, int pe);
5653

5754
/*
5855
* Strided get routines
5956
*/
60-
OSHMEM_DECLSPEC void shmemx_iget16(void* target, const void* source, ptrdiff_t tst, ptrdiff_t sst,size_t len, int pe);
6157

6258
/*
6359
* Atomic operations
@@ -141,16 +137,10 @@ OSHMEM_DECLSPEC void shmemx_int64_prod_to_all(int64_t *target, const int64_t *so
141137
#define shmem_int32_p shmemx_int32_p
142138
#define shmem_int64_p shmemx_int64_p
143139

144-
#define shmem_put16 shmemx_put16
145-
#define shmem_iput16 shmemx_iput16
146-
147140
#define shmem_int16_g shmemx_int16_g
148141
#define shmem_int32_g shmemx_int32_g
149142
#define shmem_int64_g shmemx_int64_g
150143

151-
#define shmem_get16 shmemx_get16
152-
#define shmem_iget16 shmemx_iget16
153-
154144
#define shmem_int32_swap shmemx_int32_swap
155145
#define shmem_int64_swap shmemx_int64_swap
156146

oshmem/shmem/c/profile/defines.h

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@
8686
#define shmem_double_put pshmem_double_put
8787
#define shmem_longlong_put pshmem_longlong_put
8888
#define shmem_longdouble_put pshmem_longdouble_put
89-
#define shmemx_put16 pshmemx_put16
89+
90+
#define shmem_put8 pshmem_put8
91+
#define shmem_put16 pshmem_put16
9092
#define shmem_put32 pshmem_put32
9193
#define shmem_put64 pshmem_put64
9294
#define shmem_put128 pshmem_put128
@@ -95,14 +97,17 @@
9597
/*
9698
* Strided put routines
9799
*/
98-
#define shmem_int_iput pshmem_int_iput
100+
#define shmem_char_iput pshmem_char_iput
99101
#define shmem_short_iput pshmem_short_iput
102+
#define shmem_int_iput pshmem_int_iput
100103
#define shmem_float_iput pshmem_float_iput
101104
#define shmem_double_iput pshmem_double_iput
102105
#define shmem_longlong_iput pshmem_longlong_iput
103106
#define shmem_longdouble_iput pshmem_longdouble_iput
104107
#define shmem_long_iput pshmem_long_iput
105-
#define shmemx_iput16 pshmemx_iput16
108+
109+
#define shmem_iput8 pshmem_iput8
110+
#define shmem_iput16 pshmem_iput16
106111
#define shmem_iput32 pshmem_iput32
107112
#define shmem_iput64 pshmem_iput64
108113
#define shmem_iput128 pshmem_iput128
@@ -151,7 +156,9 @@
151156
#define shmem_double_get pshmem_double_get
152157
#define shmem_longlong_get pshmem_longlong_get
153158
#define shmem_longdouble_get pshmem_longdouble_get
154-
#define shmemx_get16 pshmemx_get16
159+
160+
#define shmem_get8 pshmem_get8
161+
#define shmem_get16 pshmem_get16
155162
#define shmem_get32 pshmem_get32
156163
#define shmem_get64 pshmem_get64
157164
#define shmem_get128 pshmem_get128
@@ -160,14 +167,17 @@
160167
/*
161168
* Strided get routines
162169
*/
163-
#define shmem_int_iget pshmem_int_iget
170+
#define shmem_char_iget pshmem_char_iget
164171
#define shmem_short_iget pshmem_short_iget
172+
#define shmem_int_iget pshmem_int_iget
165173
#define shmem_float_iget pshmem_float_iget
166174
#define shmem_double_iget pshmem_double_iget
167175
#define shmem_longlong_iget pshmem_longlong_iget
168176
#define shmem_longdouble_iget pshmem_longdouble_iget
169177
#define shmem_long_iget pshmem_long_iget
170-
#define shmemx_iget16 pshmemx_iget16
178+
179+
#define shmem_iget8 pshmem_iget8
180+
#define shmem_iget16 pshmem_iget16
171181
#define shmem_iget32 pshmem_iget32
172182
#define shmem_iget64 pshmem_iget64
173183
#define shmem_iget128 pshmem_iget128
@@ -194,7 +204,6 @@
194204
* Atomic operations
195205
*/
196206
/* Atomic swap */
197-
#define shmem_swap pshmem_swap
198207
#define shmem_double_swap pshmem_double_swap
199208
#define shmem_float_swap pshmem_float_swap
200209
#define shmem_int_swap pshmem_int_swap

oshmem/shmem/c/shmem_get.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@
5454
#pragma weak shmem_double_get = pshmem_double_get
5555
#pragma weak shmem_longdouble_get = pshmem_longdouble_get
5656
#pragma weak shmem_getmem = pshmem_getmem
57-
#pragma weak shmemx_get16 = pshmemx_get16
57+
#pragma weak shmem_get8 = pshmem_get8
58+
#pragma weak shmem_get16 = pshmem_get16
5859
#pragma weak shmem_get32 = pshmem_get32
5960
#pragma weak shmem_get64 = pshmem_get64
6061
#pragma weak shmem_get128 = pshmem_get128
@@ -92,9 +93,9 @@ SHMEM_TYPE_GET(_longdouble, long double)
9293
}
9394

9495
SHMEM_TYPE_GETMEM(_getmem, 1, shmem)
95-
SHMEM_TYPE_GETMEM(_get16, 2, shmemx)
96+
SHMEM_TYPE_GETMEM(_get8, 1, shmem)
97+
SHMEM_TYPE_GETMEM(_get16, 2, shmem)
9698
SHMEM_TYPE_GETMEM(_get32, 4, shmem)
9799
SHMEM_TYPE_GETMEM(_get64, 8, shmem)
98100
SHMEM_TYPE_GETMEM(_get128, 16, shmem)
99101

100-
SHMEM_TYPE_GETMEM(_get, sizeof(long), shmem)

oshmem/shmem/c/shmem_iget.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,23 @@
5050

5151
#if OSHMEM_PROFILING
5252
#include "oshmem/include/pshmem.h"
53+
#pragma weak shmem_char_iget = pshmem_char_iget
5354
#pragma weak shmem_short_iget = pshmem_short_iget
5455
#pragma weak shmem_int_iget = pshmem_int_iget
5556
#pragma weak shmem_long_iget = pshmem_long_iget
5657
#pragma weak shmem_longlong_iget = pshmem_longlong_iget
5758
#pragma weak shmem_float_iget = pshmem_float_iget
5859
#pragma weak shmem_double_iget = pshmem_double_iget
5960
#pragma weak shmem_longdouble_iget = pshmem_longdouble_iget
60-
#pragma weak shmemx_iget16 = pshmemx_iget16
61+
#pragma weak shmem_iget8 = pshmem_iget8
62+
#pragma weak shmem_iget16 = pshmem_iget16
6163
#pragma weak shmem_iget32 = pshmem_iget32
6264
#pragma weak shmem_iget64 = pshmem_iget64
6365
#pragma weak shmem_iget128 = pshmem_iget128
6466
#include "oshmem/shmem/c/profile/defines.h"
6567
#endif
6668

69+
SHMEM_TYPE_IGET(_char, char)
6770
SHMEM_TYPE_IGET(_short, short)
6871
SHMEM_TYPE_IGET(_int, int)
6972
SHMEM_TYPE_IGET(_long, long)
@@ -95,7 +98,9 @@ SHMEM_TYPE_IGET(_longdouble, long double)
9598
return ; \
9699
}
97100

98-
SHMEM_TYPE_IGETMEM(_iget16, 2, shmemx)
101+
SHMEM_TYPE_IGETMEM(_iget8, 1, shmem)
102+
SHMEM_TYPE_IGETMEM(_iget16, 2, shmem)
99103
SHMEM_TYPE_IGETMEM(_iget32, 4, shmem)
100104
SHMEM_TYPE_IGETMEM(_iget64, 8, shmem)
101105
SHMEM_TYPE_IGETMEM(_iget128, 16, shmem)
106+

oshmem/shmem/c/shmem_iput.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,23 @@
5050

5151
#if OSHMEM_PROFILING
5252
#include "oshmem/include/pshmem.h"
53+
#pragma weak shmem_char_iput = pshmem_char_iput
5354
#pragma weak shmem_short_iput = pshmem_short_iput
5455
#pragma weak shmem_int_iput = pshmem_int_iput
5556
#pragma weak shmem_long_iput = pshmem_long_iput
5657
#pragma weak shmem_longlong_iput = pshmem_longlong_iput
5758
#pragma weak shmem_float_iput = pshmem_float_iput
5859
#pragma weak shmem_double_iput = pshmem_double_iput
5960
#pragma weak shmem_longdouble_iput = pshmem_longdouble_iput
60-
#pragma weak shmemx_iput16 = pshmemx_iput16
61+
#pragma weak shmemx_iput8 = pshmem_iput8
62+
#pragma weak shmemx_iput16 = pshmem_iput16
6163
#pragma weak shmem_iput32 = pshmem_iput32
6264
#pragma weak shmem_iput64 = pshmem_iput64
6365
#pragma weak shmem_iput128 = pshmem_iput128
6466
#include "oshmem/shmem/c/profile/defines.h"
6567
#endif
6668

69+
SHMEM_TYPE_IPUT(_char, char)
6770
SHMEM_TYPE_IPUT(_short, short)
6871
SHMEM_TYPE_IPUT(_int, int)
6972
SHMEM_TYPE_IPUT(_long, long)
@@ -95,7 +98,8 @@ SHMEM_TYPE_IPUT(_longdouble, long double)
9598
return ; \
9699
}
97100

98-
SHMEM_TYPE_IPUTMEM(_iput16, 2, shmemx)
101+
SHMEM_TYPE_IPUTMEM(_iput8, 1, shmem)
102+
SHMEM_TYPE_IPUTMEM(_iput16, 2, shmem)
99103
SHMEM_TYPE_IPUTMEM(_iput32, 4, shmem)
100104
SHMEM_TYPE_IPUTMEM(_iput64, 8, shmem)
101105
SHMEM_TYPE_IPUTMEM(_iput128, 16, shmem)

0 commit comments

Comments
 (0)