]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgomp/ChangeLog.omp
Fortran/OpenMP: Fix 'alloc' and 'from' mapping for allocatable components
[thirdparty/gcc.git] / libgomp / ChangeLog.omp
CommitLineData
a63735b8
TB
12023-03-23 Tobias Burnus <tobias@codesourcery.com>
2
3 * testsuite/libgomp.fortran/map-alloc-comp-8.f90: New test.
4
1818bab2
TS
52023-03-10 Thomas Schwinge <thomas@codesourcery.com>
6
c942b725
TS
7 Backported from master:
8 2023-03-10 Thomas Schwinge <thomas@codesourcery.com>
9
c64e8a52
TS
10 PR libgomp/90596
11 * target.c (gomp_map_vars_internal): Allow for
12 'param_kind == GOMP_MAP_VARS_OPENACC | GOMP_MAP_VARS_TARGET'.
13 * oacc-parallel.c (GOACC_parallel_keyed): Pass
14 'GOMP_MAP_VARS_TARGET' to 'goacc_map_vars'.
15 * plugin/plugin-gcn.c (alloc_by_agent, gcn_exec)
16 (GOMP_OFFLOAD_openacc_exec, GOMP_OFFLOAD_openacc_async_exec):
17 Adjust, simplify.
18 (gomp_offload_free): Remove.
19 * plugin/plugin-nvptx.c (nvptx_exec, GOMP_OFFLOAD_openacc_exec)
20 (GOMP_OFFLOAD_openacc_async_exec): Adjust, simplify.
21 (cuda_free_argmem): Remove.
22 * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
23 Adjust.
24
25 Backported from master:
26 2023-03-10 Thomas Schwinge <thomas@codesourcery.com>
27
ac859ac4
TS
28 * target.c (gomp_copy_host2dev, gomp_map_vars_internal): Allow
29 libgomp 'cbuf' buffering with OpenACC 'async' for 'ephemeral'
30 data.
31
32 Backported from master:
33 2023-03-10 Thomas Schwinge <thomas@codesourcery.com>
34
cb770c92
TS
35 * target.c (gomp_map_vars_internal): Use 'OFFSET_INLINED' for
36 'GOMP_MAP_IF_PRESENT'.
37 * plugin/plugin-gcn.c (gcn_exec, GOMP_OFFLOAD_openacc_exec)
38 (GOMP_OFFLOAD_openacc_async_exec): Adjust.
39 * plugin/plugin-nvptx.c (nvptx_exec, GOMP_OFFLOAD_openacc_exec)
40 (GOMP_OFFLOAD_openacc_async_exec): Likewise.
41 * testsuite/libgomp.oacc-c-c++-common/no_create-1.c: Add 'async'
42 testing.
43 * testsuite/libgomp.oacc-c-c++-common/no_create-2.c: Likewise.
44
45 Backported from master:
46 2023-03-10 Thomas Schwinge <thomas@codesourcery.com>
47
e58692d9
TS
48 * oacc-async.c (goacc_wait): Remove 'acc_async_test' -> skip
49 shortcut.
50
51 Backported from master:
52 2023-03-10 Thomas Schwinge <thomas@codesourcery.com>
53
b13cc8db
TS
54 * testsuite/libgomp.oacc-c-c++-common/data-3.c: Document/verify
55 another aspect of OpenACC 'async' semantics.
56
57 Backported from master:
58 2023-03-10 Thomas Schwinge <thomas@codesourcery.com>
59
c942b725
TS
60 * plugin/plugin-gcn.c (gcn_exec): Fix 'acc_ev_enqueue_launch_end'
61 position.
62 * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
63 Verify 'acc_ev_alloc', 'acc_ev_free'.
64
5ea330fd
TS
65 PR other/76739
66 * libgomp.h (goacc_map_vars): Add 'struct goacc_ncarray_info *'
67 formal parameter.
68 (gomp_map_vars_openacc): Remove.
69 * target.c (goacc_map_vars): Adjust.
70 (gomp_map_vars_openacc): Remove.
71 * oacc-mem.c (acc_map_data, goacc_enter_datum)
72 (goacc_enter_data_internal): Adjust.
73 * oacc-parallel.c (GOACC_parallel_keyed, GOACC_data_start):
74 Adjust.
75
b8beaa84
TS
76 * oacc-host.c: Revert
77 "OpenACC profiling-interface fixes for asynchronous operations"
78 changes.
79 * oacc-mem.c: Likewise.
80 * oacc-parallel.c: Likewise.
81 * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Likewise.
82 * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
83 Likewise.
84
1818bab2
TS
85 * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Revert
86 "Revert changes to acc_prof-init-1.c and acc_prof-parallel-1.c"
87 changes.
88 * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
89 Likewise.
90
15b6140e
TB
912023-03-01 Tobias Burnus <tobias@codesourcery.com>
92
93 Backported from master:
94 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
95
96 PR middle-end/108546
97 * testsuite/libgomp.fortran/is_device_ptr-3.f90: New test.
98 * testsuite/libgomp.fortran/use_device_ptr-optional-4.f90: New test.
99
3ad47717
AS
1002023-02-23 Andrew Stubbs <ams@codesourcery.com>
101
102 * target.c (gomp_attach_pointer): Check for USM.
103 * testsuite/libgomp.fortran/usm-3.f90: New test.
104
55a18d47
TB
1052023-02-22 Tobias Burnus <tobias@codesourcery.com>
106
107 * testsuite/libgomp.fortran/target-enter-data-3.f90: Uncomment
108 'target exit data'.
109 * testsuite/libgomp.fortran/target-enter-data-4.f90: New test.
110 * testsuite/libgomp.fortran/target-enter-data-5.f90: New test.
111 * testsuite/libgomp.fortran/target-enter-data-6.f90: New test.
112 * testsuite/libgomp.fortran/target-enter-data-7.f90: New test.
113
7ac561d5
TS
1142023-02-20 Thomas Schwinge <thomas@codesourcery.com>
115
9657d906
TS
116 * libgomp_g.h (GOMP_enable_pinned_mode): New.
117
7ac561d5
TS
118 * config/linux/allocator.c (linux_memspace_alloc): Add 'init0'
119 formal parameter. Adjust all users.
120 (linux_memspace_alloc, linux_memspace_free): Attempt to allocate
121 OpenMP pinned memory using a device instead of 'mmap' plus
122 attempting to register using a device.
123 * libgomp-plugin.h (GOMP_OFFLOAD_register_page_locked)
124 (GOMP_OFFLOAD_unregister_page_locked): Remove.
125 (GOMP_OFFLOAD_page_locked_host_alloc)
126 (GOMP_OFFLOAD_page_locked_host_free): New.
127 * libgomp.h (gomp_register_page_locked)
128 (gomp_unregister_page_locked): Remove.
129 (gomp_page_locked_host_alloc, gomp_page_locked_host_free): New.
130 (struct gomp_device_descr): Remove 'register_page_locked_func',
131 'unregister_page_locked_func'. Add 'page_locked_host_alloc_func',
132 'page_locked_host_free_func'.
133 * plugin/cuda-lib.def (cuMemHostRegister_v2, cuMemHostRegister)
134 (cuMemHostUnregister): Remove.
135 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_register_page_locked)
136 (GOMP_OFFLOAD_unregister_page_locked): Remove.
137 (GOMP_OFFLOAD_page_locked_host_alloc)
138 (GOMP_OFFLOAD_page_locked_host_free): New.
139 * target.c (gomp_register_page_locked)
140 (gomp_unregister_page_locked): Remove.
141 (gomp_page_locked_host_alloc, gomp_page_locked_host_free): Add.
142 (gomp_load_plugin_for_device): Don't handle
143 'register_page_locked', 'unregister_page_locked'. Handle
144 'page_locked_host_alloc', 'page_locked_host_free'.
145
b4d4603d
TS
1462023-02-16 Thomas Schwinge <thomas@codesourcery.com>
147
a5a4800e
TS
148 * config/linux/allocator.c (linux_memspace_alloc)
149 (linux_memspace_free, linux_memspace_realloc): Attempt to register
150 OpenMP pinned memory using a device instead of 'mlock'.
151 * libgomp-plugin.h (GOMP_OFFLOAD_register_page_locked)
152 (GOMP_OFFLOAD_unregister_page_locked): New.
153 * libgomp.h (gomp_register_page_locked)
154 (gomp_unregister_page_locked): New
155 (struct gomp_device_descr): Add 'register_page_locked_func',
156 'unregister_page_locked_func'.
157 * plugin/cuda-lib.def (cuMemHostRegister_v2, cuMemHostRegister)
158 (cuMemHostUnregister): New.
159 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_register_page_locked)
160 (GOMP_OFFLOAD_unregister_page_locked): New.
161 * target.c (gomp_register_page_locked)
162 (gomp_unregister_page_locked): New.
163 (gomp_load_plugin_for_device): Handle 'register_page_locked',
164 'unregister_page_locked'.
165 * testsuite/libgomp.c/alloc-pinned-1.c: Adjust.
166 * testsuite/libgomp.c/alloc-pinned-2.c: Likewise.
167 * testsuite/libgomp.c/alloc-pinned-3.c: Likewise.
168 * testsuite/libgomp.c/alloc-pinned-4.c: Likewise.
169 * testsuite/libgomp.c/alloc-pinned-5.c: Likewise.
170 * testsuite/libgomp.c/alloc-pinned-6.c: Likewise.
171
3a2c0739
TS
172 * allocator.c (omp_realloc): Route 'free' through 'MEMSPACE_FREE'.
173
57b8f060
TS
174 * config/linux/allocator.c (linux_memspace_alloc)
175 (linux_memspace_calloc): Clarify zero-initialization for pinned
176 memory.
177 * testsuite/libgomp.c/alloc-pinned-1.c: Verify zero-initialization
178 for pinned memory.
179 * testsuite/libgomp.c/alloc-pinned-2.c: Likewise.
180 * testsuite/libgomp.c/alloc-pinned-3.c: Likewise.
181 * testsuite/libgomp.c/alloc-pinned-4.c: Likewise.
182 * testsuite/libgomp.c/alloc-pinned-5.c: Likewise.
183
23f52e49
TS
184 * config/linux/allocator.c (linux_memspace_calloc): Elide
185 (innocuous) duplicate 'if' condition.
186 * config/nvptx/allocator.c (nvptx_memspace_free): Explicitly
187 handle 'memspace == ompx_host_mem_space'.
188 * libgomp.h (gomp_is_usm_ptr): Remove.
189
6cc0e7be
TS
190 * basic-allocator.c (BASIC_ALLOC_YIELD): instead of '#deine',
191 '#define' it.
192
b4d4603d
TS
193 * testsuite/libgomp.c/usm-1.c: Re-enable non-GCN offloading
194 compilation.
195 * testsuite/libgomp.c/usm-2.c: Likewise.
196 * testsuite/libgomp.c/usm-3.c: Likewise.
197 * testsuite/libgomp.c/usm-4.c: Likewise.
198
2e3327d6
JJ
1992023-02-16 Tobias Burnus <tobias@codesourcery.com>
200
201 Backported from master:
202 2023-02-16 Jakub Jelinek <jakub@redhat.com>
203
204 * libgomp.texi: Fix typos - theads -> threads.
205
ed3e203c
JJ
2062023-02-16 Tobias Burnus <tobias@codesourcery.com>
207
208 Backported from master:
209 2023-02-16 Jakub Jelinek <jakub@redhat.com>
210
211 * testsuite/libgomp.fortran/target-nowait-array-section.f90: Fix
212 comment typo and improve its wording.
213
c77c45a6
AS
2142023-02-16 Andrew Stubbs <ams@codesourcery.com>
215
216 * config/gcn/libgomp-gcn.h (TEAM_ARENA_START): Move to here.
217 (TEAM_ARENA_FREE): Likewise.
218 (TEAM_ARENA_END): Likewise.
219 (GCN_LOWLAT_HEAP): New.
220 * config/gcn/team.c (LITTLEENDIAN_CPU): New, and import hsa.h.
221 (__gcn_lowlat_init): New prototype.
222 (gomp_gcn_enter_kernel): Initialize the low-latency heap.
223 * libgomp.h (TEAM_ARENA_START): Move to libgomp.h.
224 (TEAM_ARENA_FREE): Likewise.
225 (TEAM_ARENA_END): Likewise.
226 * plugin/plugin-gcn.c (lowlat_size): New variable.
227 (print_kernel_dispatch): Label the group_segment_size purpose.
228 (init_environment_variables): Read GOMP_GCN_LOWLAT_POOL.
229 (create_kernel_dispatch): Pass low-latency head allocation to kernel.
230 (run_kernel): Use shadow; don't assume values.
231 * testsuite/libgomp.c/allocators-7.c: Enable for amdgcn.
232
9583738a
AS
2332023-02-16 Andrew Stubbs <ams@codesourcery.com>
234
235 * config/nvptx/allocator.c (BASIC_ALLOC_PREFIX): New define, and
236 include basic-allocator.c.
237 (__nvptx_lowlat_heap_root): Remove.
238 (heapdesc): Remove.
239 (nvptx_memspace_alloc): Move implementation to basic-allocator.c.
240 (nvptx_memspace_calloc): Likewise.
241 (nvptx_memspace_free): Likewise.
242 (nvptx_memspace_realloc): Likewise.
243 * config/nvptx/team.c (__nvptx_lowlat_heap_root): Remove.
244 (gomp_nvptx_main): Call __nvptx_lowlat_init.
245 * basic-allocator.c: New file.
246
bbda035e
TS
2472023-02-15 Thomas Schwinge <thomas@codesourcery.com>
248
249 * testsuite/libgomp.c-c++-common/target-present-1.c: Fix.
250 * testsuite/libgomp.c-c++-common/target-present-2.c: Likewise.
251 * testsuite/libgomp.c-c++-common/target-present-3.c: Likewise.
252 * testsuite/libgomp.fortran/target-present-1.f90: Likewise.
253 * testsuite/libgomp.fortran/target-present-2.f90: Likewise.
254 * testsuite/libgomp.fortran/target-present-3.f90: Likewise.
255
32fa844b
TB
2562023-02-15 Tobias Burnus <tobias@codesourcery.com>
257
258 Backported from master:
259 2023-02-15 Tobias Burnus <tobias@codesourcery.com>
260
261 * target.c (gomp_target_rev): Dereference ptr
262 to get device address.
263 * testsuite/libgomp.fortran/reverse-offload-5.f90: Add test
264 for unallocated allocatable.
265
ec6bf735
TB
2662023-02-15 Tobias Burnus <tobias@codesourcery.com>
267
268 Backported from master:
269 2023-02-15 Tobias Burnus <tobias@codesourcery.com>
270
271 * target.c (gomp_map_vars_internal): Add 'i > 0' before doing a
272 kind check.
273 (GOMP_target_enter_exit_data): If the next map item is
274 GOMP_MAP_ALWAYS_POINTER map it together with the current item.
275 * testsuite/libgomp.fortran/target-enter-data-4.f90: New test.
276
cd377354
TS
2772023-02-14 Thomas Schwinge <thomas@codesourcery.com>
278
279 * target.c (gomp_target_rev): Address cast to pointer from integer
280 of different size.
281
229b7058
KCY
2822023-02-09 Kwok Cheung Yeung <kcy@codesourcery.com>
283
284 * target.c (gomp_to_device_kind_p): Add map kinds with 'present'
285 modifier.
286 (gomp_map_vars_existing): Use new GOMP_MAP_FORCE_P macro.
287 (gomp_map_vars_internal): Emit runtime error if memory region not
288 present.
289 (gomp_update): Likewise.
290 (gomp_target_rev): Likewise.
291 * testsuite/libgomp.c-c++-common/target-present-1.c: New.
292 * testsuite/libgomp.c-c++-common/target-present-2.c: New.
293 * testsuite/libgomp.c-c++-common/target-present-3.c: New.
294 * testsuite/libgomp.fortran/target-present-1.f90: New.
295 * testsuite/libgomp.fortran/target-present-2.f90: New.
296 * testsuite/libgomp.fortran/target-present-3.f90: New.
297
f735f59a
TB
2982023-02-09 Tobias Burnus <tobias@codesourcery.com>
299
300 Backported from master:
301 2023-02-09 Tobias Burnus <tobias@codesourcery.com>
302
303 PR fortran/107424
304 * testsuite/libgomp.fortran/non-rectangular-loop-1.f90: New test.
305 * testsuite/libgomp.fortran/non-rectangular-loop-1a.f90: New test.
306 * testsuite/libgomp.fortran/non-rectangular-loop-2.f90: New test.
307 * testsuite/libgomp.fortran/non-rectangular-loop-3.f90: New test.
308 * testsuite/libgomp.fortran/non-rectangular-loop-4.f90: New test.
309 * testsuite/libgomp.fortran/non-rectangular-loop-5.f90: New test.
310
9c0ffa37
TS
3112023-02-09 Thomas Schwinge <thomas@codesourcery.com>
312
7e1963a4
TS
313 * testsuite/libgomp.fortran/allocate-5.f90: Paste.
314
6e0ba07f
TS
315 * testsuite/libgomp.c++/c++.exp (check_effective_target_c)
316 (check_effective_target_c++): New.
317 * testsuite/libgomp.c/c.exp (check_effective_target_c)
318 (check_effective_target_c++): Likewise.
319 * testsuite/libgomp.c-c++-common/uses_allocators-1.c: Paste.
320 * testsuite/libgomp.c-c++-common/uses_allocators-2.c: Likewise.
321 * testsuite/libgomp.c-c++-common/uses_allocators-3.c: Likewise.
322 * testsuite/libgomp.fortran/uses_allocators-1.f90: Likewise.
323 * testsuite/libgomp.fortran/uses_allocators-2.f90: Likewise.
324 * testsuite/libgomp.fortran/uses_allocators-3.f90: Likewise.
325
9c0ffa37
TS
326 * testsuite/libgomp.c-c++-common/alloc-pinned-1.c: Paste.
327
353a52cb
TS
3282023-02-08 Tobias Burnus <tobias@codesourcery.com>
329
330 Backported from master:
331 2023-02-07 Thomas Schwinge <thomas@codesourcery.com>
332
333 * testsuite/libgomp.fortran/reverse-offload-6.f90: Fix nvptx
334 offloading compilation.
335
fea797e0
TB
3362023-02-07 Tobias Burnus <tobias@codesourcery.com>
337
338 Backported from master:
339 2023-02-03 Tobias Burnus <tobias@codesourcery.com>
340
341 * libgomp.texi (5.0 Impl. Status, gcn specifics): Update for
342 reverse offload.
343 * plugin/plugin-gcn.c (GOMP_OFFLOAD_get_num_devices): Accept
344 reverse-offload requirement.
345
3462023-02-07 Tobias Burnus <tobias@codesourcery.com>
b15627a0
TB
347
348 Backported from master:
349 2023-02-02 Tobias Burnus <tobias@codesourcery.com>
350
351 * libgomp.texi (OpenMP TR11): Fix item for 'strict' modifier.
352
0f34c713
AS
3532023-02-06 Andrew Stubbs <ams@codesourcery.com>
354
355 * config/gcn/libgomp-gcn.h (DEFAULT_GCN_STACK_SIZE): New define.
356 (DEFAULT_TEAM_ARENA_SIZE): New define.
357 (struct heap): Move to this file.
358 (struct kernargs_abi): Likewise.
359 * config/gcn/team.c (gomp_gcn_enter_kernel): Use team arena size from
360 the kernargs.
361 * libgomp.h: Include libgomp-gcn.h.
362 (TEAM_ARENA_SIZE): Remove.
363 (team_malloc): Update the error message.
364 * plugin/plugin-gcn.c (struct kernargs): Move common content to
365 struct kernargs_abi.
366 (struct agent_info): Rename team arenas to ephemeral memories.
367 (struct team_arena_list): Rename ....
368 (struct ephemeral_memories_list): to this.
369 (struct heap): Delete.
370 (team_arena_size): New variable.
371 (stack_size): New variable.
372 (print_kernel_dispatch): Update debug messages.
373 (init_environment_variables): Read GCN_TEAM_ARENA_SIZE.
374 Read GCN_STACK_SIZE.
375 (get_team_arena): Rename ...
376 (configure_ephemeral_memories): ... to this, and set up stacks.
377 (release_team_arena): Rename ...
378 (release_ephemeral_memories): ... to this.
379 (destroy_team_arenas): Rename ...
380 (destroy_ephemeral_memories): ... to this.
381 (create_kernel_dispatch): Add num_threads parameter.
382 Adjust for kernargs_abi refactor and ephemeral memories.
383 (release_kernel_dispatch): Adjust for ephemeral memories.
384 (run_kernel): Pass thread-count to create_kernel_dispatch.
385 (GOMP_OFFLOAD_init_device): Adjust for ephemeral memories.
386 (GOMP_OFFLOAD_fini_device): Adjust for ephemeral memories.
387
07cea1a9
TB
3882023-02-03 Tobias Burnus <tobias@codesourcery.com>
389
390 Backported from master:
391 2023-02-03 Tobias Burnus <tobias@codesourcery.com>
392
393 * target.c (gomp_target_rev): Handle mapnum == 0 and avoid
394 freeing not allocated memory.
395 * testsuite/libgomp.fortran/reverse-offload-6.f90: New test.
396
6b611f1b
TB
3972023-02-01 Tobias Burnus <tobias@codesourcery.com>
398
399 Backported from master:
400 2023-02-01 Tobias Burnus <tobias@codesourcery.com>
401
402 * libgomp.texi (5.0 Impl. Status): Update 'requires' and 'ancestor'.
403 (GCN): Add item about 'omp requires'.
404 (nvptx): Likewise; add item about reverse offload.
405
23f2f065
TB
4062023-02-01 Tobias Burnus <tobias@codesourcery.com>
407
408 Backported from master:
409 2023-02-01 Tobias Burnus <tobias@codesourcery.com>
410
411 * testsuite/libgomp.fortran/allocate-3.f90: Fix ALIGN
412 usage, remove unused -fdump-tree-original.
413 * testsuite/libgomp.fortran/allocate-4.f90: New.
414
f8224dd7
TB
4152023-01-26 Tobias Burnus <tobias@codesourcery.com>
416
417 Backported from master:
418 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
419
420 * libgomp.texi (OpenMP 5.0): Set non-rectangular
421
04efab55
TS
4222023-01-24 Thomas Schwinge <thomas@codesourcery.com>
423
424 * libgomp.texi (nvptx): Update for
425 'nvptx, libgfortran: Switch out of "minimal" mode'.
426
e7d4bcb9
TS
4272023-01-20 Thomas Schwinge <thomas@codesourcery.com>
428
c7734c6f
TS
429 * testsuite/libgomp.fortran/target-print-1.f90: Adjust.
430 * testsuite/libgomp.fortran/target-print-1-nvptx.f90: Remove.
431 * testsuite/libgomp.oacc-fortran/print-1.f90: Adjust.
432 * testsuite/libgomp.oacc-fortran/print-1-nvptx.f90: Remove.
433 * testsuite/libgomp.oacc-fortran/error_stop-2.f: Adjust.
434 * testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
435
689a5340
TS
436 * plugin/plugin-nvptx.c (nvptx_do_global_cdtors): New.
437 (nvptx_close_device, GOMP_OFFLOAD_load_image)
438 (GOMP_OFFLOAD_unload_image): Call it.
439
d26a2a29
TS
440 * plugin/plugin-nvptx.c (nvptx_exec): Assert what we know about
441 'blockDimX'.
442
094b379f
TS
443 PR target/85463
444 * config/nvptx/error.c (exit): Don't override.
445 * testsuite/libgomp.oacc-fortran/error_stop-1.f: Update.
446 * testsuite/libgomp.oacc-fortran/error_stop-2.f: Likewise.
447 * testsuite/libgomp.oacc-fortran/error_stop-3.f: Likewise.
448 * testsuite/libgomp.oacc-fortran/stop-1.f: Likewise.
449 * testsuite/libgomp.oacc-fortran/stop-2.f: Likewise.
450 * testsuite/libgomp.oacc-fortran/stop-3.f: Likewise.
451
bbd4eb17
TS
452 * testsuite/libgomp.c/simd-math-1.c: Fix configuration, again.
453
9dde5e1f
TS
454 * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Force
455 '--param openacc-kernels=parloops'.
456
e7d4bcb9
TS
457 * testsuite/libgomp.c/simd-math-1.c: Fix configuration.
458
1184c551
JJ
4592023-01-19 Tobias Burnus <tobias@codesourcery.com>
460
461 Backported from master:
462 2023-01-19 Jakub Jelinek <jakub@redhat.com>
463
464 PR middle-end/108459
465 * testsuite/libgomp.c/pr108459.c: New test.
466
495b7c3a
AS
4672023-01-13 Andrew Stubbs <ams@codesourcery.com>
468
469 * usm-allocator.c (ALIGN): Use 128-byte alignment.
470
4712023-01-11 Andrew Stubbs <ams@codesourcery.com>
472
473 * plugin/plugin-gcn.c: Include sys/mman.h and unistd.h.
474 (usm_heap_create): New function.
475 (struct usm_splay_tree_key_s): Delete function.
476 (usm_splay_compare): Delete function.
477 (splay_tree_prefix): Delete define.
478 (GOMP_OFFLOAD_usm_alloc): Use new allocator.
479 (GOMP_OFFLOAD_usm_free): Likewise.
480 (GOMP_OFFLOAD_is_usm_ptr): Likewise.
481 (gomp_fatal): Delete macro.
482 (splay_tree_c): Delete.
483 * usm-allocator.c: New file.
484
881fc999
CLT
4852022-12-21 Tobias Burnus <tobias@codesourcery.com>
486
487 Backported from master:
488 2022-12-21 Chung-Lin Tang <cltang@codesourcery.com>
489
490 * config/nvptx/bar.c (generation_to_barrier): Remove.
491 (futex_wait,futex_wake,do_spin,do_wait): Remove.
492 (GOMP_WAIT_H): Remove.
493 (#include "../linux/bar.c"): Remove.
494 (gomp_barrier_wait_end): New function.
495 (gomp_barrier_wait): Likewise.
496 (gomp_barrier_wait_last): Likewise.
497 (gomp_team_barrier_wait_end): Likewise.
498 (gomp_team_barrier_wait): Likewise.
499 (gomp_team_barrier_wait_final): Likewise.
500 (gomp_team_barrier_wait_cancel_end): Likewise.
501 (gomp_team_barrier_wait_cancel): Likewise.
502 (gomp_team_barrier_cancel): Likewise.
503 * config/nvptx/bar.h (gomp_barrier_t): Remove waiters, lock fields.
504 (gomp_barrier_init): Remove init of waiters, lock fields.
505 (gomp_team_barrier_wake): Remove prototype, add new static inline
506 function.
507
2ab62864
AS
5082022-12-16 Andrew Stubbs <ams@codesourcery.com>
509
510 * libgomp.h (OFFSET_USM): New macro.
511 * target.c (gomp_map_pointer): Handle USM mappings.
512 (gomp_map_val): Handle OFFSET_USM.
513 (gomp_map_vars_internal): Move USM check earlier, and use OFFSET_USM.
514 Add OFFSET_USM check to the second mapping pass.
515 * testsuite/libgomp.fortran/usm-1.f90: New test.
516 * testsuite/libgomp.fortran/usm-2.f90: New test.
517
9044b7ef
MV
5182022-12-13 Marcel Vollweiler <marcel@codesourcery.com>
519
520 * target.c (omp_target_is_accessible): Handle unified shared memory.
521 * testsuite/libgomp.c-c++-common/target-is-accessible-1.c: Updated.
522 * testsuite/libgomp.fortran/target-is-accessible-1.f90: Updated.
523 * testsuite/libgomp.c-c++-common/target-is-accessible-2.c: New test.
524 * testsuite/libgomp.fortran/target-is-accessible-2.f90: New test.
525
f9ea81c0
TB
5262022-12-12 Tobias Burnus <tobias@codesourcery.com>
527
528 Backported from master:
529 2022-12-10 Tobias Burnus <tobias@codesourcery.com>
530
531 * libgomp.h (struct target_mem_desc): Predeclare; move
532 below after 'reverse_splay_tree_node' and add rev_array
533 member.
534 (struct reverse_splay_tree_key_s, reverse_splay_compare): New.
535 (reverse_splay_tree_node, reverse_splay_tree,
536 reverse_splay_tree_key): New typedef.
537 (struct gomp_device_descr): Add mem_map_rev member.
538 * oacc-host.c (host_dispatch): NULL init .mem_map_rev.
539 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_get_num_devices): Claim
540 support for GOMP_REQUIRES_REVERSE_OFFLOAD.
541 * splay-tree.h (splay_tree_callback_stop): New typedef; like
542 splay_tree_callback but returning int not void.
543 (splay_tree_foreach_lazy): Define; like splay_tree_foreach but
544 taking splay_tree_callback_stop as argument.
545 * splay-tree.c (splay_tree_foreach_internal_lazy,
546 splay_tree_foreach_lazy): New; but early exit if callback returns
547 nonzero.
548 * target.c: Instatiate splay_tree_c with splay_tree_prefix 'reverse'.
549 (gomp_map_lookup_rev): New.
550 (gomp_load_image_to_device): Handle reverse-offload function
551 lookup table.
552 (gomp_unload_image_from_device): Free devicep->mem_map_rev.
553 (struct gomp_splay_tree_rev_lookup_data, gomp_splay_tree_rev_lookup,
554 gomp_map_rev_lookup, struct cpy_data, gomp_map_cdata_lookup_int,
555 gomp_map_cdata_lookup): New auxiliary structs and functions for
556 gomp_target_rev.
557 (gomp_target_rev): Implement reverse offloading and its mapping.
558 (gomp_target_init): Init current_device.mem_map_rev.root.
559 * testsuite/libgomp.fortran/reverse-offload-2.f90: New test.
560 * testsuite/libgomp.fortran/reverse-offload-3.f90: New test.
561 * testsuite/libgomp.fortran/reverse-offload-4.f90: New test.
562 * testsuite/libgomp.fortran/reverse-offload-5.f90: New test.
563 * testsuite/libgomp.fortran/reverse-offload-5a.f90: New test without
564 mapping of on-device allocated variables.
565
58e0579e
TB
5662022-12-12 Tobias Burnus <tobias@codesourcery.com>
567
568 Backported from master:
569 2022-12-09 Tobias Burnus <tobias@codesourcery.com>
f9ea81c0 570
58e0579e
TB
571 * libgomp.texi (5.1 Impl. Status): Split allocate clause/directive
572 item about 'align'; mark clause as 'Y' and directive as 'N'.
573 * testsuite/libgomp.fortran/allocate-2.f90: New test.
574 * testsuite/libgomp.fortran/allocate-3.f90: New test.
575
42428468
MV
5762022-12-06 Marcel Vollweiler <marcel@codesourcery.com>
577
578 Backported from master:
579 2022-12-06 Marcel Vollweiler <marcel@codesourcery.com>
580
581 * config/gcn/icv-device.c (omp_get_teams_thread_limit): Added to
582 allow processing of device-specific values.
583 (omp_set_teams_thread_limit): Likewise.
584 (ialias): Likewise.
585 * config/nvptx/icv-device.c (omp_get_teams_thread_limit): Likewise.
586 (omp_set_teams_thread_limit): Likewise.
587 (ialias): Likewise.
588 * icv-device.c (omp_get_teams_thread_limit): Likewise.
589 (ialias): Likewise.
590 (omp_set_teams_thread_limit): Likewise.
591 * icv.c (omp_set_teams_thread_limit): Removed.
592 (omp_get_teams_thread_limit): Likewise.
593 (ialias): Likewise.
594 * libgomp.texi: Updated documentation for nvptx and gcn corresponding
595 to the limitation of the number of teams.
596 * plugin/plugin-gcn.c (limit_teams): New helper function that limits
597 the number of teams by twice the number of compute units.
598 (parse_target_attributes): Limit the number of teams on gcn offload
599 devices.
600 * target.c (get_gomp_offload_icvs): Added teams_thread_limit_var
601 handling.
602 (gomp_load_image_to_device): Added a size check for the ICVs struct
603 variable.
604 (gomp_copy_back_icvs): New function that is used in GOMP_target_ext to
605 copy back the ICV values from device to host.
606 (GOMP_target_ext): Update the number of teams and threads in the kernel
607 args also considering device-specific values.
608 * testsuite/libgomp.c-c++-common/icv-4.c: Fixed an error in the reading
609 of OMP_TEAMS_THREAD_LIMIT from the environment.
610 * testsuite/libgomp.c-c++-common/icv-5.c: Extended.
611 * testsuite/libgomp.c-c++-common/icv-6.c: Extended.
612 * testsuite/libgomp.c-c++-common/icv-7.c: Extended.
613 * testsuite/libgomp.c-c++-common/icv-9.c: New test.
614 * testsuite/libgomp.fortran/icv-5.f90: New test.
615 * testsuite/libgomp.fortran/icv-6.f90: New test.
616
de21480c
PAA
6172022-12-06 Paul-Antoine Arras <pa@codesourcery.com>
618
619 * config/gcn/selector.c (GOMP_evaluate_current_device): Recognise 'amdgcn'
620 as arch, and '-march' values (as well as 'gfx803') as isa traits.
621 * testsuite/libgomp.c-c++-common/metadirective-6.c: New test.
622
ed4d5b84
TB
6232022-12-06 Tobias Burnus <tobias@codesourcery.com>
624
625 Backported from master:
626 2022-12-06 Tobias Burnus <tobias@codesourcery.com>
627
628 * libgomp.texi (OpenMP 5.2): Add missing 'the'.
629 (TR11): Add missing '@tab N @tab'.
630
02e6b3fd
TB
6312022-11-30 Tobias Burnus <tobias@codesourcery.com>
632
633 Backported from master:
634 2022-11-30 Tobias Burnus <tobias@codesourcery.com>
635
636 * libgomp.texi (OpenMP Context Selectors): Add 'gfx803' to gcn's isa.
637
b60c5663
PAA
6382022-11-30 Paul-Antoine Arras <pa@codesourcery.com>
639
640 Backported from master:
641 2022-11-30 Paul-Antoine Arras <pa@codesourcery.com>
642
643 * testsuite/libgomp.c/declare-variant-4-fiji.c: New test.
644 * testsuite/libgomp.c/declare-variant-4-gfx803.c: New test.
645 * testsuite/libgomp.c/declare-variant-4-gfx900.c: New test.
646 * testsuite/libgomp.c/declare-variant-4-gfx906.c: New test.
647 * testsuite/libgomp.c/declare-variant-4-gfx908.c: New test.
648 * testsuite/libgomp.c/declare-variant-4-gfx90a.c: New test.
649 * testsuite/libgomp.c/declare-variant-4.h: New header file.
650
519f647c
TB
6512022-11-28 Tobias Burnus <tobias@codesourcery.com>
652
653 Backported from master:
654 2022-11-28 Tobias Burnus <tobias@codesourcery.com>
655
656 * libgomp.texi (OpenMP 5.2): Mark end-directive as Y.
657
97c07e0b
TB
6582022-11-28 Tobias Burnus <tobias@codesourcery.com>
659
660 Backported from master:
661 2022-11-25 Tobias Burnus <tobias@codesourcery.com>
662
663 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_load_image): Use unsigned int
664 for 'i' to match 'fn_entries'; regard absent GOMP_REV_OFFLOAD_VAR
665 as valid and the code having no reverse-offload code.
666 * testsuite/libgomp.c-c++-common/reverse-offload-2.c: New test.
667
6c6d03e4
TB
6682022-11-28 Tobias Burnus <tobias@codesourcery.com>
669
670 Backported from master:
671 2022-11-25 Tobias Burnus <tobias@codesourcery.com>
672
673 * libgomp.texi (OpenMP Implementation Status): Add three 5.1 items
674 and status for Technical Report (TR) 11.
675
bda07240
SL
6762022-11-26 Sandra Loosemore <sandra@codesourcery.com>
677
678 Backported from master:
679 2022-11-25 Sandra Loosemore <sandra@codesourcery.com>
680
681 * testsuite/lib/libgomp.exp: Load scanoffloadipa.exp library.
682 * testsuite/libgomp.c/target-simd-clone-1.c: New.
683 * testsuite/libgomp.c/target-simd-clone-2.c: New.
684 * testsuite/libgomp.c/target-simd-clone-3.c: New.
685
20fe3733
TB
6862022-11-21 Tobias Burnus <tobias@codesourcery.com>
687
688 Backported from master:
689 2022-11-21 Tobias Burnus <tobias@codesourcery.com>
690
691 * config/gcn/libgomp-gcn.h (struct output):
692 Remove 'msg_u64' from the union, change
693 value_u64[2] to value_u64[6].
694 * config/gcn/target.c (GOMP_target_ext): Update accordingly.
695 * plugin/plugin-gcn.c (process_reverse_offload, console_output):
696 Likewise.
697
27aad787
TB
6982022-11-19 Tobias Burnus <tobias@codesourcery.com>
699
700 Backported from master:
701 2022-11-19 Tobias Burnus <tobias@codesourcery.com>
702
703 * config/gcn/libgomp-gcn.h: New file; contains
704 struct output, declared previously in plugin-gcn.c.
705 * config/gcn/target.c: Include it.
706 (GOMP_ADDITIONAL_ICVS): Declare as extern var.
707 (GOMP_target_ext): Handle reverse offload.
708 * plugin/plugin-gcn.c: Include libgomp-gcn.h.
709 (struct kernargs): Replace struct def by the one
710 from libgomp-gcn.h for output_data.
711 (process_reverse_offload): New.
712 (console_output): Call it.
713
43884163
TB
7142022-11-18 Tobias Burnus <tobias@codesourcery.com>
715
716 Backported from master:
717 2022-11-16 Tobias Burnus <tobias@codesourcery.com>
718 Andrew Stubbs <ams@codesourcery.com>
719
720 * config/gcn/team.c (gomp_gcn_enter_kernel): Use
721 __builtin_gcn_kernarg_ptr instead of asm ("s8").
722
c56df700
JJ
7232022-11-14 Tobias Burnus <tobias@codesourcery.com>
724
725 Backport from mainline:
726 2022-11-12 Jakub Jelinek <jakub@redhat.com>
727
728 PR libgomp/107641
729 * env.c (parse_unsigned_long): Cast params[2] to uintptr_t rather than
730 unsigned long. Change type of upper from unsigned to unsigned long.
731
f9d53629
TB
7322022-11-04 Tobias Burnus <tobias@codesourcery.com>
733
734 * testsuite/libgomp.fortran/target-13.f90: Remove strides to match
735 mainline (GCC 13) version.
736
9fd571cb 7372022-11-02 Thomas Schwinge <thomas@codesourcery.com>
f8a1c619
TS
738
739 * testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-directive.f90:
740 Adjust.
741 * testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-runtime.f90:
742 Likewise.
743 * testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1.f90:
744 New.
9fd571cb 745
5f1635e2
TS
746 * testsuite/libgomp.oacc-fortran/declare-allocatable-1-directive.f90:
747 Adjust.
748 * testsuite/libgomp.oacc-fortran/declare-allocatable-1-runtime.f90:
749 Likewise.
750 * testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90:
751 Likewise.
752
5a3111c3
TS
753 * testsuite/libgomp.oacc-fortran/declare-allocatable-1-directive.f90:
754 XFAIL some OpenACC 'kernels' confusion.
755 * testsuite/libgomp.oacc-fortran/declare-allocatable-1-runtime.f90:
756 Likewise.
757 * testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90:
758 Likewise.
759
63918a81
TS
760 Backported from master:
761 2022-11-02 Thomas Schwinge <thomas@codesourcery.com>
762
5a9e5a7d
TS
763 PR libgomp/106643
764 PR fortran/96668
765 * oacc-mem.c (goacc_enter_data_internal): Support
766 OpenACC 'declare create' with Fortran allocatable arrays, part II.
767 * testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-directive.f90:
768 Adjust.
769 * testsuite/libgomp.oacc-fortran/pr106643-1.f90: New.
770
771 Backported from master:
772 2022-11-02 Thomas Schwinge <thomas@codesourcery.com>
773
511b9790
TS
774 PR libgomp/106643
775 * oacc-mem.c (goacc_enter_data_internal): Support
776 OpenACC 'declare create' with Fortran allocatable arrays, part I.
777 * testsuite/libgomp.oacc-fortran/declare-allocatable-1-directive.f90:
778 New.
779 * testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-directive.f90:
780 New.
781
782 Backported from master:
783 2022-11-02 Thomas Schwinge <thomas@codesourcery.com>
784
184bb427
TS
785 * testsuite/libgomp.oacc-fortran/declare-allocatable-array_descriptor-1-runtime.f90:
786 New.
787
788 Backported from master:
789 2022-11-02 Thomas Schwinge <thomas@codesourcery.com>
790
63918a81
TS
791 * testsuite/libgomp.oacc-fortran/declare-allocatable-1-runtime.f90:
792 New.
793
9fd571cb
CP
794 Backported from master:
795 2022-11-02 Cesar Philippidis <cesar@codesourcery.com>
796 Thomas Schwinge <thomas@codesourcery.com>
797
798 * testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90: New.
799
9cb4ef1e
TB
8002022-11-02 Tobias Burnus <tobias@codesourcery.com>
801
802 * testsuite/libgomp.fortran/target-enter-data-3.f90: New test.
803
ca133487
TB
8042022-11-02 Tobias Burnus <tobias@codesourcery.com>
805
806 * testsuite/libgomp.c-c++-common/requires-4.c: Fix dg-xfail-run-if
807 condition.
808
cb934e37
TB
8092022-11-02 Tobias Burnus <tobias@codesourcery.com>
810
811 * testsuite/libgomp.fortran/target-11.f90: New test.
812 * testsuite/libgomp.fortran/target-13.f90: New test.
813
863579c4
KCY
8142022-11-01 Kwok Cheung Yeung <kcy@codesourcery.com>
815
816 * testsuite/libgomp.c/simd-math-1.c: New testcase.
817
797dde52
TS
8182022-10-28 Thomas Schwinge <thomas@codesourcery.com>
819
820 * testsuite/libgomp.oacc-fortran/privatized-ref-2.f90: Adjust.
821
9c461798
HAQ
8222022-10-25 Abid Qadeer <abidh@codesourcery.com>
823
824 * testsuite/libgomp.c++/usm-2.C: New test.
825
e0322c67
TS
8262022-10-24 Tobias Burnus <tobias@codesourcery.com>
827
828 Backport from mainline:
829 2022-10-24 Thomas Schwinge <thomas@codesourcery.com>
830
831 * plugin/plugin-nvptx.c (nvptx_open_device): Initialize
832 'ptx_dev->rev_data'.
833
c682c503
TB
8342022-10-24 Tobias Burnus <tobias@codesourcery.com>
835
836 Backport from mainline:
837 2022-10-24 Tobias Burnus <tobias@codesourcery.com>
838
839 * config/nvptx/icv-device.c (GOMP_DEVICE_NUM_VAR): Remove
840 'static' for this variable.
841 * config/nvptx/libgomp-nvptx.h: New file.
842 * config/nvptx/target.c: Include it.
843 (GOMP_ADDITIONAL_ICVS): Declare extern var.
844 (GOMP_REV_OFFLOAD_VAR): Declare var.
845 (GOMP_target_ext): Handle reverse offload.
846 * libgomp-plugin.h (GOMP_PLUGIN_target_rev): New prototype.
847 * libgomp-plugin.c (GOMP_PLUGIN_target_rev): New, call ...
848 * target.c (gomp_target_rev): ... this new stub function.
849 * libgomp.h (gomp_target_rev): Declare.
850 * libgomp.map (GOMP_PLUGIN_1.4): New; add GOMP_PLUGIN_target_rev.
851 * plugin/cuda-lib.def (cuMemHostAlloc): Add.
852 * plugin/plugin-nvptx.c: Include libgomp-nvptx.h.
853 (struct ptx_device): Add rev_data member.
854 (nvptx_open_device): Remove async_engines query, last used in
855 r10-304-g1f4c5b9b; add unified-address assert check.
856 (GOMP_OFFLOAD_get_num_devices): Claim unified address
857 support.
858 (GOMP_OFFLOAD_load_image): Free rev_fn_table if no
859 offload functions exist. Make offload var available
860 on host and device.
861 (rev_off_dev_to_host_cpy, rev_off_host_to_dev_cpy): New.
862 (GOMP_OFFLOAD_run): Handle reverse offload.
863
ffc6267a
TB
8642022-10-20 Tobias Burnus <tobias@codesourcery.com>
865
866 Backport from mainline:
867 2022-10-20 Tobias Burnus <tobias@codesourcery.com>
868
869 * testsuite/lib/libgomp.exp (check_effective_target_offload_device_gcn):
870 New.
871 * testsuite/libgomp.c-c++-common/on_device_arch.h (device_arch_gcn,
872 on_device_arch_gcn): New.
873 * testsuite/libgomp.c-c++-common/requires-4a.c: New test; copied from
874 requires-4.c but using heap-allocated memory.
875
fd25efb7
TB
8762022-10-17 Tobias Burnus <tobias@codesourcery.com>
877
878 Backport from mainline:
879 2022-10-13 Tobias Burnus <tobias@codesourcery.com>
880
881 * testsuite/libgomp.fortran/task-7.f90: New test.
882 * testsuite/libgomp.fortran/task-8.f90: New test.
883 * testsuite/libgomp.fortran/task-in-explicit-1.f90: New test.
884 * testsuite/libgomp.fortran/task-in-explicit-2.f90: New test.
885 * testsuite/libgomp.fortran/task-in-explicit-3.f90: New test.
886 * testsuite/libgomp.fortran/task-reduction-17.f90: New test.
887 * testsuite/libgomp.fortran/task-reduction-18.f90: New test.
888
452bb7db
JJ
8892022-10-17 Tobias Burnus <tobias@codesourcery.com>
890
891 Backport from mainline:
892 2022-10-12 Jakub Jelinek <jakub@redhat.com>
893
894 * libgomp.texi (OpenMP 5.2): Fix up allocator -> allocate directive
895 in deprecation bullet.
896
7e45444b
JJ
8972022-10-17 Tobias Burnus <tobias@codesourcery.com>
898
899 Backport from mainline:
900 2022-10-12 Jakub Jelinek <jakub@redhat.com>
901
902 * omp.h.in (omp_in_explicit_task): Declare.
903 * omp_lib.h.in (omp_in_explicit_task): Likewise.
904 * omp_lib.f90.in (omp_in_explicit_task): New interface.
905 * libgomp.map (OMP_5.2): New symbol version, export
906 omp_in_explicit_task and omp_in_explicit_task_.
907 * task.c (omp_in_explicit_task): New function.
908 * fortran.c (omp_in_explicit_task): Add ialias_redirect.
909 (omp_in_explicit_task_): New function.
910 * libgomp.texi (OpenMP 5.2): Mark omp_in_explicit_task as implemented.
911 * testsuite/libgomp.c-c++-common/task-in-explicit-1.c: New test.
912 * testsuite/libgomp.c-c++-common/task-in-explicit-2.c: New test.
913 * testsuite/libgomp.c-c++-common/task-in-explicit-3.c: New test.
914
4e08e02c
JJ
9152022-10-17 Tobias Burnus <tobias@codesourcery.com>
916
917 Backport from mainline:
918 2022-10-12 Jakub Jelinek <jakub@redhat.com>
919
920 * task.c (gomp_create_artificial_team): Fix up handling of invocations
921 from within explicit task.
922 * target.c (GOMP_target_ext): Likewise.
923 * testsuite/libgomp.c/task-7.c: New test.
924 * testsuite/libgomp.c/task-8.c: New test.
925 * testsuite/libgomp.c-c++-common/task-reduction-17.c: New test.
926 * testsuite/libgomp.c-c++-common/task-reduction-18.c: New test.
927
f36ce95a
TS
9282022-10-17 Thomas Schwinge <thomas@codesourcery.com>
929
930 Backported from master:
931 2022-10-17 Thomas Schwinge <thomas@codesourcery.com>
932
933 * testsuite/libgomp.c/reverse-offload-sm30.c: Fix nvptx-specific
934 '-foffload-options' syntax.
935
d4504346
JB
9362022-10-14 Julian Brown <julian@codesourcery.com>
937
938 * testsuite/libgomp.oacc-fortran/declare-1.f90: Adjust scan output.
939 * testsuite/libgomp.oacc-fortran/host_data-5.F90: Likewise.
940 * testsuite/libgomp.oacc-fortran/if-1.f90: Likewise.
941 * testsuite/libgomp.oacc-fortran/print-1.f90: Likewise.
942 * testsuite/libgomp.oacc-fortran/privatized-ref-2.f90: Likewise.
943
249a6ce0
TB
9442022-10-05 Tobias Burnus <tobias@codesourcery.com>
945
946 Backport from mainline:
947 2022-10-05 Tobias Burnus <tobias@codesourcery.com>
948
949 * libgomp.texi (OpenMP 5.1 Impl. Status): Mark 'assume' as 'Y'.
950
65d065bb
JJ
9512022-10-04 Tobias Burnus <tobias@codesourcery.com>
952
953 Backport from mainline:
954 2022-10-04 Jakub Jelinek <jakub@redhat.com>
955
956 * libgomp.texi (Support begin/end declare target syntax in C/C++):
957 Mark as implemented.
958
5ee8de35
TB
9592022-09-30 Tobias Burnus <tobias@codesourcery.com>
960
961 Backport from mainline:
962 2022-09-30 Tobias Burnus <tobias@codesourcery.com>
963
964 PR fortran/105318
965 * testsuite/libgomp.fortran/is_device_ptr-2.f90: New test.
966
4ed1f19b
TB
9672022-09-28 Tobias Burnus <tobias@codesourcery.com>
968
969 Backport from mainline:
970 2022-09-28 Tobias Burnus <tobias@codesourcery.com>
971
972 * libgomp.texi (OpenMP 5.1): Mark 'assume' as implemented
973 for C/C++. Remove duplicated 'begin declare target' entry.
974
534283c6
JJ
9752022-09-24 Tobias Burnus <tobias@codesourcery.com>
976
977 Backport from mainline:
978 2022-09-24 Jakub Jelinek <jakub@redhat.com>
979
980 PR c/106981
981 * testsuite/libgomp.c-c++-common/pr106981.c: New test.
982
ccd3d15a
JJ
9832022-09-13 Tobias Burnus <tobias@codesourcery.com>
984
985 Backport from mainline:
986 2022-09-13 Jakub Jelinek <jakub@redhat.com>
987
988 PR libgomp/106906
989 * env.c (get_icv_member_addr): Cast false to void * before assigning
990 it to icv_addr[1], and comment the whole assignment out.
991
0c17135a
TB
9922022-09-13 Tobias Burnus <tobias@codesourcery.com>
993
994 Backport from mainline:
995 2022-09-13 Tobias Burnus <tobias@codesourcery.com>
996
997 * libgomp.texi (gcn): Move misplaced -march=sm_30 remark to ...
998 (nvptx): ... here.
999
c8d2d18f
TB
10002022-09-12 Tobias Burnus <tobias@codesourcery.com>
1001
1002 Backport from mainline:
1003 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
1004
1005 * libgomp.texi (Offload-Target Specifics: nvptx): Document
1006 that reverse offload requires >= -march=sm_35.
1007 * testsuite/libgomp.c-c++-common/requires-4.c: Build for nvptx
1008 with -misa=sm_35.
1009 * testsuite/libgomp.c-c++-common/requires-5.c: Likewise.
1010 * testsuite/libgomp.c-c++-common/requires-6.c: Likewise.
1011 * testsuite/libgomp.c-c++-common/reverse-offload-1.c: Likewise.
1012 * testsuite/libgomp.fortran/reverse-offload-1.f90: Likewise.
1013 * testsuite/libgomp.c/reverse-offload-sm30.c: New test.
1014
8a04333f
TB
10152022-09-12 Tobias Burnus <tobias@codesourcery.com>
1016
1017 Backport from mainline:
1018 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
1019
1020 * libgomp.texi (OpenMP 5.1 Impl. Status): Add two new minor items.
1021 (OpenMP 5.2 Impl. Status): Improve omp/omx/ompx wording.
1022
c32eb675
JJ
10232022-09-12 Tobias Burnus <tobias@codesourcery.com>
1024
1025 Backport from mainline:
1026 2022-09-12 Jakub Jelinek <jakub@redhat.com>
1027
1028 PR libgomp/106894
1029 * testsuite/libgomp.c-c++-common/icv-6.c: Include string.h.
1030 (main): Avoid tests for which corresponding non-_ALL suffixed variable
1031 is in the environment, or for OMP_NUM_TEAMS on the device
1032 OMP_NUM_TEAMS_DEV_?.
1033
7fbe2380
IS
10342022-09-12 Tobias Burnus <tobias@codesourcery.com>
1035
1036 Backport from mainline:
1037 2022-09-10 Iain Sandoe <iain@sandoe.co.uk>
1038
1039 * env.c (initialize_env): Include libiberty environ.h.
1040
2b6ad53f
TB
10412022-09-12 Tobias Burnus <tobias@codesourcery.com>
1042
1043 Backport from mainline:
1044 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
1045
1046 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_load_image): Read offload
1047 function address table '$offload_func_table' if rev_fn_table
1048 is not NULL.
1049
b2e6dfc8
TB
10502022-09-12 Tobias Burnus <tobias@codesourcery.com>
1051
1052 Backport from mainline:
1053 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
1054
1055 * plugin/plugin-gcn.c (GOMP_OFFLOAD_load_image): Read
1056 .offload_func_table to populate rev_fn_table when requested.
1057
fd867dd6
TB
10582022-09-12 Tobias Burnus <tobias@codesourcery.com>
1059
1060 Backport from mainline:
1061 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
1062
1063 * libgomp-plugin.h (GOMP_OFFLOAD_load_image): Add
1064 'uint64_t **rev_fn_table' argument.
1065 * oacc-host.c (host_load_image): Likewise.
1066 * plugin/plugin-gcn.c (GOMP_OFFLOAD_load_image): Likewise;
1067 currently unused.
1068 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_load_image): Likewise.
1069 * target.c (gomp_load_image_to_device): Update call but pass
1070 NULL for now.
1071
1aa03128
JJ
10722022-09-09 Tobias Burnus <tobias@codesourcery.com>
1073
1074 Backport from mainline:
1075 2022-09-09 Jakub Jelinek <jakub@redhat.com>
1076
1077 PR libgomp/106894
1078 * env.c (initialize_env) <case PARSE_BIND>: Use char ** instead of
1079 char * for dest[1] initialization from params[1]. Formatting fixes.
1080
fa7e7381
TB
10812022-09-09 Tobias Burnus <tobias@codesourcery.com>
1082
1083 Backport from mainline:
1084 2022-09-08 Tobias Burnus <tobias@codesourcery.com>
1085
1086 PR fortran/106670
1087 * libgomp.texi (OpenMP 5.2): Add comment to ompx/omx entry.
1088
8b479946
TB
10892022-09-09 Tobias Burnus <tobias@codesourcery.com>
1090
1091 Backport from mainline:
1092 2022-09-08 Tobias Burnus <tobias@codesourcery.com>
1093
1094 * libgomp.texi (OpenMP-Implementation Specifics): New; add libmemkind
1095 section; move OpenMP Context Selectors from ...
1096 (Offload-Target Specifics): ... here; add 'AMD Radeo (GCN)' and
1097 'nvptx' sections.
1098
db7940c9
MV
10992022-09-09 Tobias Burnus <tobias@codesourcery.com>
1100
1101 Backport from mainline:
1102 2022-09-08 Marcel Vollweiler <marcel@codesourcery.com>
1103
1104 * config/gcn/icv-device.c (omp_get_default_device): Return device-
1105 specific ICV.
1106 (omp_get_max_teams): Added for GCN devices.
1107 (omp_set_num_teams): Likewise.
1108 (ialias): Likewise.
1109 * config/nvptx/icv-device.c (omp_get_default_device): Return device-
1110 specific ICV.
1111 (omp_get_max_teams): Added for NVPTX devices.
1112 (omp_set_num_teams): Likewise.
1113 (ialias): Likewise.
1114 * env.c (struct gomp_icv_list): New struct to store entries of initial
1115 ICV values.
1116 (struct gomp_offload_icv_list): New struct to store entries of device-
1117 specific ICV values that are copied to the device and back.
1118 (struct gomp_default_icv_values): New struct to store default values of
1119 ICVs according to the OpenMP standard.
1120 (parse_schedule): Generalized for different variants of OMP_SCHEDULE.
1121 (print_env_var_error): Function that prints an error for invalid values
1122 for ICVs.
1123 (parse_unsigned_long_1): Removed getenv. Generalized.
1124 (parse_unsigned_long): Likewise.
1125 (parse_int_1): Likewise.
1126 (parse_int): Likewise.
1127 (parse_int_secure): Likewise.
1128 (parse_unsigned_long_list): Likewise.
1129 (parse_target_offload): Likewise.
1130 (parse_bind_var): Likewise.
1131 (parse_stacksize): Likewise.
1132 (parse_boolean): Likewise.
1133 (parse_wait_policy): Likewise.
1134 (parse_allocator): Likewise.
1135 (omp_display_env): Extended to output different variants of environment
1136 variables.
1137 (print_schedule): New helper function for omp_display_env which prints
1138 the values of run_sched_var.
1139 (print_proc_bind): New helper function for omp_display_env which prints
1140 the values of proc_bind_var.
1141 (enum gomp_parse_type): Collection of types used for parsing environment
1142 variables.
1143 (ENTRY): Preprocess string lengths of environment variables.
1144 (OMP_VAR_CNT): Preprocess table size.
1145 (OMP_HOST_VAR_CNT): Likewise.
1146 (INT_MAX_STR_LEN): Constant for the maximal number of digits of a device
1147 number.
1148 (gomp_get_icv_flag): Returns if a flag for a particular ICV is set.
1149 (gomp_set_icv_flag): Sets a flag for a particular ICV.
1150 (print_device_specific_icvs): New helper function for omp_display_env to
1151 print device specific ICV values.
1152 (get_device_num): New helper function for parse_device_specific.
1153 Extracts the device number from an environment variable name.
1154 (get_icv_member_addr): Gets the memory address for a particular member
1155 of an ICV struct.
1156 (gomp_get_initial_icv_item): Get a list item of gomp_initial_icv_list.
1157 (initialize_icvs): New function to initialize a gomp_initial_icvs
1158 struct.
1159 (add_initial_icv_to_list): Adds an ICV struct to gomp_initial_icv_list.
1160 (startswith): Checks if a string starts with a given prefix.
1161 (initialize_env): Extended to parse the new syntax of environment
1162 variables.
1163 * icv-device.c (omp_get_max_teams): Added.
1164 (ialias): Likewise.
1165 (omp_set_num_teams): Likewise.
1166 * icv.c (omp_set_num_teams): Moved to icv-device.c.
1167 (omp_get_max_teams): Likewise.
1168 (ialias): Likewise.
1169 * libgomp-plugin.h (GOMP_DEVICE_NUM_VAR): Removed.
1170 (GOMP_ADDITIONAL_ICVS): New target-side struct that
1171 holds the designated ICVs of the target device.
1172 * libgomp.h (enum gomp_icvs): Collection of ICVs.
1173 (enum gomp_device_num): Definition of device numbers for _ALL, _DEV, and
1174 no suffix.
1175 (enum gomp_env_suffix): Collection of possible suffixes of environment
1176 variables.
1177 (struct gomp_initial_icvs): Contains all ICVs for which we need to store
1178 initial values.
1179 (struct gomp_default_icv):New struct to hold ICVs for which we need
1180 to store initial values.
1181 (struct gomp_icv_list): Definition of a linked list that is used for
1182 storing ICVs for the devices and also for _DEV, _ALL, and without
1183 suffix.
1184 (struct gomp_offload_icvs): New struct to hold ICVs that are copied to
1185 a device.
1186 (struct gomp_offload_icv_list): Definition of a linked list that holds
1187 device-specific ICVs that are copied to devices.
1188 (gomp_get_initial_icv_item): Get a list item of gomp_initial_icv_list.
1189 (gomp_get_icv_flag): Returns if a flag for a particular ICV is set.
1190 * libgomp.texi: Updated.
1191 * plugin/plugin-gcn.c (GOMP_OFFLOAD_load_image): Extended to read
1192 further ICVs from the offload image.
1193 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_load_image): Likewise.
1194 * target.c (gomp_get_offload_icv_item): Get a list item of
1195 gomp_offload_icv_list.
1196 (get_gomp_offload_icvs): New. Returns the ICV values
1197 depending on the device num and the variable hierarchy.
1198 (gomp_load_image_to_device): Extended to copy further ICVs to a device.
1199 * testsuite/libgomp.c-c++-common/icv-5.c: New test.
1200 * testsuite/libgomp.c-c++-common/icv-6.c: New test.
1201 * testsuite/libgomp.c-c++-common/icv-7.c: New test.
1202 * testsuite/libgomp.c-c++-common/icv-8.c: New test.
1203 * testsuite/libgomp.c-c++-common/omp-display-env-1.c: New test.
1204 * testsuite/libgomp.c-c++-common/omp-display-env-2.c: New test.
1205
b52d3705
JJ
12062022-09-08 Tobias Burnus <tobias@codesourcery.com>
1207
1208 Backport from mainline:
1209 2022-09-08 Jakub Jelinek <jakub@redhat.com>
1210
1211 * libgomp.texi (OpenMP 5.2): Mention that omp_cur_iteration is now
1212 fully supported.
1213 * testsuite/libgomp.c/doacross-4.c: New test.
1214 * testsuite/libgomp.c/doacross-5.c: New test.
1215 * testsuite/libgomp.c/doacross-6.c: New test.
1216 * testsuite/libgomp.c/doacross-7.c: New test.
1217
b79c973b
JJ
12182022-09-08 Tobias Burnus <tobias@codesourcery.com>
1219
1220 Backport from mainline:
1221 2022-05-17 Jakub Jelinek <jakub@redhat.com>
1222
1223 * libgomp.texi (OpenMP 5.1): Remove "Not inside target regions"
1224 comment for omp_display_env feature.
1225
bc81271a
TB
12262022-09-05 Tobias Burnus <tobias@codesourcery.com>
1227
1228 Backport from mainline:
1229 2022-09-05 Tobias Burnus <tobias@codesourcery.com>
1230
1231 * libgomp.texi (OpenMP 5.2): Update doacross/omp_cur_iteration status.
1232
b0256655
TB
12332022-08-30 Tobias Burnus <tobias@codesourcery.com>
1234
1235 Backport from mainline:
1236 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
1237
1238 * libgomp.texi (OpenMP 5.0): Mark 'ancestor' as implemented but
1239 refer to 'requires'.
1240 * testsuite/libgomp.c-c++-common/reverse-offload-1-aux.c: New test.
1241 * testsuite/libgomp.c-c++-common/reverse-offload-1.c: New test.
1242 * testsuite/libgomp.fortran/reverse-offload-1-aux.f90: New test.
1243 * testsuite/libgomp.fortran/reverse-offload-1.f90: New test.
1244
be32fafd
TB
12452022-08-17 Tobias Burnus <tobias@codesourcery.com>
1246
1247 Backport from mainline:
1248 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
1249
1250 * splay-tree.h: Fix splay_* macro unsetting if
1251 splay_tree_prefix is defined.
1252
c68a8f1a
TB
12532022-07-29 Tobias Burnus <tobias@codesourcery.com>
1254
1255 Backport from mainline:
1256 2022-07-29 Tobias Burnus <tobias@codesourcery.com>
1257
1258 * libgomp.c-c++-common/pr106449-2.c: New test.
1259
89dd8390
TB
12602022-07-13 Tobias Burnus <tobias@codesourcery.com>
1261
1262 Backport from mainline:
1263 2022-07-12 Tobias Burnus <tobias@codesourcery.com>
1264
1265 * target.c (gomp_target_init): Added tailing '\n' to gomp_debug.
1266
860c7665
TS
12672022-07-08 Tobias Burnus <tobias@codesourcery.com>
1268
1269 Backport from mainline:
1270 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
1271
1272 * testsuite/libgomp.c-c++-common/requires-1.c: Add 'dg-note's.
1273 * testsuite/libgomp.c-c++-common/requires-2.c: Likewise.
1274 * testsuite/libgomp.c-c++-common/requires-3.c: Likewise.
1275 * testsuite/libgomp.c-c++-common/requires-7.c: Likewise.
1276 * testsuite/libgomp.fortran/requires-1.f90: Likewise.
1277
c4b637d1
TS
12782022-07-07 Tobias Burnus <tobias@codesourcery.com>
1279
1280 Backport from mainline:
1281 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
1282
1283 * target.c (GOMP_offload_register, GOMP_offload_unregister):
1284 Denote as legacy entry points.
1285 * testsuite/lib/libgomp.exp
1286 (check_effective_target_offload_target_any): New proc.
1287 * testsuite/libgomp.c-c++-common/requires-1.c: Enable for
1288 'offload_target_any'.
1289 * testsuite/libgomp.c-c++-common/requires-3.c: Likewise.
1290 * testsuite/libgomp.c-c++-common/requires-7.c: Likewise.
1291 * testsuite/libgomp.fortran/requires-1.f90: Likewise.
1292
8bdc6ae4
TS
12932022-07-07 Tobias Burnus <tobias@codesourcery.com>
1294
1295 Backport from mainline:
1296 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
1297
1298 * testsuite/libgomp.c-c++-common/requires-4.c: Enhance testing.
1299 * testsuite/libgomp.c-c++-common/requires-5.c: Likewise.
1300
f86ab292
TS
13012022-07-07 Tobias Burnus <tobias@codesourcery.com>
1302
1303 Backport from mainline:
1304 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
1305
1306 * testsuite/libgomp.c-c++-common/requires-3.c: Adjust.
1307
72777e6c
TS
13082022-07-07 Tobias Burnus <tobias@codesourcery.com>
1309
1310 Backport from mainline:
1311 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
1312
1313 * target.c (GOMP_offload_register_ver): Clarify 'target_data' ->
1314 'data'.
1315 (GOMP_offload_unregister_ver): Likewise. Fix up 'target_data'.
1316
5e7baa3c
TB
13172022-07-05 Tobias Burnus <tobias@codesourcery.com>
1318
1319 Backport from mainline:
1320 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
1321 Chung-Lin Tang <cltang@codesourcery.com>
1322 Thomas Schwinge <thomas@codesourcery.com>
1323
1324 * libgomp-plugin.h (GOMP_OFFLOAD_get_num_devices): Add
1325 omp_requires_mask arg.
1326 * plugin/plugin-gcn.c (GOMP_OFFLOAD_get_num_devices): Likewise;
1327 return -1 when device available but omp_requires_mask != 0.
1328 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_get_num_devices): Likewise.
1329 * oacc-host.c (host_get_num_devices, host_openacc_get_property):
1330 Update call.
1331 * oacc-init.c (resolve_device, acc_init_1, acc_shutdown_1,
1332 goacc_attach_host_thread_to_device, acc_get_num_devices,
1333 acc_set_device_num, get_property_any): Likewise.
1334 * target.c (omp_requires_mask): New global var.
1335 (gomp_requires_to_name): New.
1336 (GOMP_offload_register_ver): Handle passed omp_requires_mask.
1337 (gomp_target_init): Handle omp_requires_mask.
1338 * libgomp.texi (OpenMP 5.0): Update requires impl. status.
1339 (OpenMP 5.1): Add a missed item.
1340 (OpenMP 5.2): Mark linear-clause change as supported in C/C++.
1341 * testsuite/libgomp.c-c++-common/requires-1-aux.c: New test.
1342 * testsuite/libgomp.c-c++-common/requires-1.c: New test.
1343 * testsuite/libgomp.c-c++-common/requires-2-aux.c: New test.
1344 * testsuite/libgomp.c-c++-common/requires-2.c: New test.
1345 * testsuite/libgomp.c-c++-common/requires-3-aux.c: New test.
1346 * testsuite/libgomp.c-c++-common/requires-3.c: New test.
1347 * testsuite/libgomp.c-c++-common/requires-4-aux.c: New test.
1348 * testsuite/libgomp.c-c++-common/requires-4.c: New test.
1349 * testsuite/libgomp.c-c++-common/requires-5-aux.c: New test.
1350 * testsuite/libgomp.c-c++-common/requires-5.c: New test.
1351 * testsuite/libgomp.c-c++-common/requires-6.c: New test.
1352 * testsuite/libgomp.c-c++-common/requires-7-aux.c: New test.
1353 * testsuite/libgomp.c-c++-common/requires-7.c: New test.
1354 * testsuite/libgomp.fortran/requires-1-aux.f90: New test.
1355 * testsuite/libgomp.fortran/requires-1.f90: New test.
1356
13572022-07-05 Tobias Burnus <tobias@codesourcery.com>
1358
1359 Reverted:
1360 2021-03-25 Thomas Schwinge <thomas@codesourcery.com>
1361
1362 * target.c (__requires_mask_table, __requires_mask_table_end): Add
1363 '__attribute__((weak))'.
1364
13652022-07-05 Tobias Burnus <tobias@codesourcery.com>
1366
1367 Reverted:
1368 2021-02-02 Chung-Lin Tang <cltang@codesourcery.com>
1369
1370 * libgomp-plugin.h (GOMP_OFFLOAD_supported_features): New declaration.
1371 * libgomp.h (struct gomp_device_descr): New 'supported_features_func'
1372 plugin hook field.
1373 * oacc-host.c (host_supported_features): New host hook function.
1374 (host_dispatch): Initialize 'supported_features_func' host hook.
1375 * plugin/plugin-gcn.c (GOMP_OFFLOAD_supported_features): New function.
1376 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_supported_features): Likewise.
1377 * target.c (<stdio.h>): Add include of standard header.
1378 (gomp_requires_mask): New static variable.
1379 (__requires_mask_table): New declaration.
1380 (__requires_mask_table_end): Likewise.
1381
9492ed22
TB
13822022-07-05 Tobias Burnus <tobias@codesourcery.com>
1383
1384 Backport from mainline:
1385 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
1386 Jakub Jelinek <jakub@redhat.com>
1387
1388 * libgomp.texi (OpenMP 5.2): Mark linear-clause change as 'Y'.
1389
f9c809f0
TB
13902022-07-05 Tobias Burnus <tobias@codesourcery.com>
1391
1392 Backport from mainline:
1393 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
1394
1395 * libgomp.texi (OpenMP 5.2): Mark target enter/exit data
1396 with fromto as implemented.
1397
11b4126c
JJ
13982022-07-05 Tobias Burnus <tobias@codesourcery.com>
1399
1400 Backport from mainline:
1401 2022-06-15 Jakub Jelinek <jakub@redhat.com>
1402
1403 * testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c (main): Initialize
1404 q to ddress of an automatic variable. Use -5 instead of -1 in
1405 omp_get_mapped_ptr call. Add test with omp_initial_device.
1406 * testsuite/libgomp.fortran/get-mapped-ptr-1.f90 (main): Use -5 instead
1407 of -1 in omp_get_mapped_ptr call. Add test with omp_initial_device.
1408 Renumber stop arguments afterwards.
1409
047509c2
JJ
14102022-07-05 Tobias Burnus <tobias@codesourcery.com>
1411
1412 Backport from mainline:
1413 2022-06-13 Jakub Jelinek <jakub@redhat.com>
1414
1415 * omp.h.in (omp_initial_device, omp_invalid_device): New enumerators.
1416 * omp_lib.f90.in (omp_initial_device, omp_invalid_device): New
1417 parameters.
1418 * omp_lib.h.in (omp_initial_device, omp_invalid_device): Likewise.
1419 * target.c (resolve_device): Add remapped argument, handle
1420 GOMP_DEVICE_ICV only if remapped is true (and clear remapped),
1421 for negative values, treat GOMP_DEVICE_FALLBACK as fallback only
1422 if remapped, otherwise treat omp_initial_device that way. For
1423 omp_invalid_device, always emit gomp_fatal, even when
1424 OMP_TARGET_OFFLOAD isn't mandatory.
1425 (GOMP_target, GOMP_target_ext, GOMP_target_data, GOMP_target_data_ext,
1426 GOMP_target_update, GOMP_target_update_ext,
1427 GOMP_target_enter_exit_data): Pass true as remapped argument to
1428 resolve_device.
1429 (omp_target_alloc, omp_target_free, omp_target_is_present,
1430 omp_target_memcpy_check, omp_target_associate_ptr,
1431 omp_target_disassociate_ptr, omp_get_mapped_ptr,
1432 omp_target_is_accessible): Pass false as remapped argument to
1433 resolve_device. Treat omp_initial_device the same as
1434 gomp_get_num_devices (). Don't bypass resolve_device calls if
1435 device_num is negative.
1436 (omp_pause_resource): Treat omp_initial_device the same as
1437 gomp_get_num_devices (). Call resolve_device.
1438 * icv-device.c (omp_set_default_device): Always set to device_num
1439 even when it is negative.
1440 * libgomp.texi: Document that Conforming device numbers,
1441 omp_initial_device and omp_invalid_device is implemented.
1442 * testsuite/libgomp.c/target-41.c (main): Add test with
1443 omp_initial_device.
1444 * testsuite/libgomp.c/target-45.c: New test.
1445 * testsuite/libgomp.c/target-46.c: New test.
1446 * testsuite/libgomp.c/target-47.c: New test.
1447 * testsuite/libgomp.c-c++-common/target-is-accessible-1.c (main): Add
1448 test with omp_initial_device. Use -5 instead of -1 for negative value
1449 test.
1450 * testsuite/libgomp.fortran/target-is-accessible-1.f90 (main):
1451 Likewise. Reorder stop numbers.
1452
fc8e0d12
TB
14532022-07-05 Tobias Burnus <tobias@codesourcery.com>
1454
1455 Backport from mainline:
1456 2022-06-03 Tobias Burnus <tobias@codesourcery.com>
1457
1458 * libgomp.texi (OpenMP 5.2): Mark scope w/ firstprivate/allocate as Y.
1459 * testsuite/libgomp.fortran/scope-2.f90: New test.
1460
0ca11d9d
JJ
14612022-07-05 Tobias Burnus <tobias@codesourcery.com>
1462
1463 Backport from mainline:
1464 2022-05-31 Jakub Jelinek <jakub@redhat.com>
1465
1466 * testsuite/libgomp.c-c++-common/allocate-1.c (foo): Add testcase for
1467 scope construct with allocate clause.
1468 * testsuite/libgomp.c-c++-common/allocate-3.c (foo): Likewise.
1469 * testsuite/libgomp.c-c++-common/scope-2.c: New test.
1470
5d894208
TB
14712022-07-05 Tobias Burnus <tobias@codesourcery.com>
1472
1473 Backport from mainline:
1474 2022-05-28 Tobias Burnus <tobias@codesourcery.com>
1475
1476 * libgomp.texi (OpenMP 5.2): Mark 'enter' clause as supported.
1477 * testsuite/libgomp.fortran/declare-target-1.f90: Extend to test
1478 explicit 'to' and 'enter' clause.
1479 * testsuite/libgomp.fortran/declare-target-2.f90: Update accordingly.
1480
d23aea91
JJ
14812022-07-05 Tobias Burnus <tobias@codesourcery.com>
1482
1483 Backport from mainline:
1484 2022-05-27 Jakub Jelinek <jakub@redhat.com>
1485
1486 * testsuite/libgomp.c-c++-common/target-40.c: Modify some existing to
1487 clauses to enter.
1488 * testsuite/libgomp.c/target-41.c: Likewise.
1489
f29aac5b
TB
14902022-07-05 Tobias Burnus <tobias@codesourcery.com>
1491
1492 Backport from mainline:
1493 2022-05-27 Tobias Burnus <tobias@codesourcery.com>
1494
1495 * libgomp.texi (Other new OpenMP 5.1 features): Add
1496 'begin declare target'.
1497 (Other new OpenMP 5.2 features): New.
1498
4d893a71
JJ
14992022-07-05 Tobias Burnus <tobias@codesourcery.com>
1500
1501 Backport from mainline:
1502 2022-05-25 Jakub Jelinek <jakub@redhat.com>
1503
1504 * task.c (gomp_task_run_post_handle_dependers): If empty_task
1505 is the last task taskwait depend depends on, wake it up.
1506 Similarly if it is the last child of a taskgroup, use atomic
1507 store instead of decrement and awak taskgroup wait if any.
1508 * testsuite/libgomp.c-c++-common/taskwait-depend-nowait-2.c: New test.
1509
47b01438
TB
15102022-07-05 Tobias Burnus <tobias@codesourcery.com>
1511
1512 Backport from mainline:
1513 2022-05-24 Tobias Burnus <tobias@codesourcery.com>
1514
1515 PR c/105378
1516 * libgomp.texi (OpenMP 5.1): Set 'taskwait nowait' to 'Y'.
1517 * testsuite/libgomp.fortran/taskwait-depend-nowait-1.f90: New.
1518
a25ddca5
JJ
15192022-07-05 Tobias Burnus <tobias@codesourcery.com>
1520
1521 Backport from mainline:
1522 2022-05-24 Jakub Jelinek <jakub@redhat.com>
1523
1524 PR c/105378
1525 * libgomp_g.h (GOMP_taskwait_depend_nowait): Declare.
1526 * libgomp.map (GOMP_taskwait_depend_nowait): Export at GOMP_5.1.1.
1527 * task.c (empty_task): New function.
1528 (gomp_task_run_post_handle_depend_hash): Declare earlier.
1529 (gomp_task_run_post_handle_depend): Declare.
1530 (GOMP_task): Optimize fn == empty_task if there is nothing to wait
1531 for.
1532 (gomp_task_run_post_handle_dependers): Optimize task->fn == empty_task.
1533 (GOMP_taskwait_depend_nowait): New function.
1534 * testsuite/libgomp.c-c++-common/taskwait-depend-nowait-1.c: New test.
1535
9bde4b46
MV
15362022-07-05 Tobias Burnus <tobias@codesourcery.com>
1537
1538 Backport from mainline:
1539 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
1540
1541 * libgomp.map: Added omp_target_memcpy_async and
1542 omp_target_memcpy_rect_async.
1543 * libgomp.texi: Both functions are now supported.
1544 * omp.h.in: Added omp_target_memcpy_async and
1545 omp_target_memcpy_rect_async.
1546 * omp_lib.f90.in: Added interfaces for both new functions.
1547 * omp_lib.h.in: Likewise.
1548 * target.c (ialias_redirect): Added for GOMP_task.
1549 (omp_target_memcpy): Restructured into check and copy part.
1550 (omp_target_memcpy_check): New helper function for omp_target_memcpy and
1551 omp_target_memcpy_async that checks requirements.
1552 (omp_target_memcpy_copy): New helper function for omp_target_memcpy and
1553 omp_target_memcpy_async that performs the memcpy.
1554 (omp_target_memcpy_async_helper): New helper function that is used in
1555 omp_target_memcpy_async for the asynchronous task.
1556 (omp_target_memcpy_async): Added.
1557 (omp_target_memcpy_rect): Restructured into check and copy part.
1558 (omp_target_memcpy_rect_check): New helper function for
1559 omp_target_memcpy_rect and omp_target_memcpy_rect_async that checks
1560 requirements.
1561 (omp_target_memcpy_rect_copy): New helper function for
1562 omp_target_memcpy_rect and omp_target_memcpy_rect_async that performs
1563 the memcpy.
1564 (omp_target_memcpy_rect_async_helper): New helper function that is used
1565 in omp_target_memcpy_rect_async for the asynchronous task.
1566 (omp_target_memcpy_rect_async): Added.
1567 * task.c (ialias): Added for GOMP_task.
1568 * testsuite/libgomp.c-c++-common/target-memcpy-async-1.c: New test.
1569 * testsuite/libgomp.c-c++-common/target-memcpy-async-2.c: New test.
1570 * testsuite/libgomp.c-c++-common/target-memcpy-rect-async-1.c: New test.
1571 * testsuite/libgomp.c-c++-common/target-memcpy-rect-async-2.c: New test.
1572 * testsuite/libgomp.fortran/target-memcpy-async-1.f90: New test.
1573 * testsuite/libgomp.fortran/target-memcpy-async-2.f90: New test.
1574 * testsuite/libgomp.fortran/target-memcpy-rect-async-1.f90: New test.
1575 * testsuite/libgomp.fortran/target-memcpy-rect-async-2.f90: New test.
1576
2dda9403
TB
15772022-07-05 Tobias Burnus <tobias@codesourcery.com>
1578
1579 Backport from mainline:
1580 2022-05-18 Tobias Burnus <tobias@codesourcery.com>
1581
1582 * libgomp.texi (OpenMP 5.1): Set 'inoutset' to Y.
1583 (OpenMP Context Selectors): Add missing comma.
1584 * testsuite/libgomp.fortran/depend-5.f90: Add inoutset test.
1585 * testsuite/libgomp.fortran/depend-6.f90: Likewise.
1586 * testsuite/libgomp.fortran/depend-7.f90: Likewise.
1587 * testsuite/libgomp.fortran/depend-inoutset-1.f90: New test.
1588
bf4e0a66
TB
15892022-07-04 Tobias Burnus <tobias@codesourcery.com>
1590
1591 Backport from mainline:
1592 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
1593
1594 * libgomp.texi (Offload-Target Specifics): New chapter; add section
1595 to document OpenMP context selectors.
1596
3062a5dd
JJ
15972022-07-04 Tobias Burnus <tobias@codesourcery.com>
1598
1599 Backport from mainline:
1600 2022-05-17 Jakub Jelinek <jakub@redhat.com>
1601
1602 * libgomp.h (struct gomp_task_depend_entry): Change is_in type
1603 from bool to unsigned char.
1604 * task.c (gomp_task_handle_depend): Handle GOMP_DEPEND_INOUTSET.
1605 Ignore dependencies where
1606 task->depend[i].is_in && task->depend[i].is_in == ent->is_in
1607 rather than just task->depend[i].is_in && ent->is_in. Remember
1608 whether GOMP_DEPEND_IN loop is needed and guard the loop with that
1609 conditional.
1610 (gomp_task_maybe_wait_for_dependencies): Handle GOMP_DEPEND_INOUTSET.
1611 Ignore dependencies where elem.is_in && elem.is_in == ent->is_in
1612 rather than just elem.is_in && ent->is_in.
1613 * testsuite/libgomp.c-c++-common/depend-1.c (test): Add task with
1614 inoutset depend-kind.
1615 * testsuite/libgomp.c-c++-common/depend-2.c (test): Likewise.
1616 * testsuite/libgomp.c-c++-common/depend-3.c (test): Likewise.
1617 * testsuite/libgomp.c-c++-common/depend-inoutset-1.c: New test.
1618
e387767b
TB
16192022-07-04 Tobias Burnus <tobias@codesourcery.com>
1620
1621 Backport from mainline:
1622 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
1623
1624 * libgomp.texi (OpenMP Implementation Status): Add 5.2 table.
1625
c4157723
TB
16262022-07-04 Tobias Burnus <tobias@codesourcery.com>
1627
1628 Backport from mainline:
1629 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
1630
1631 * libgomp.texi (OpenMP 5.1): Set omp_all_memory to 'Y'.
1632 * testsuite/libgomp.fortran/depend-5.f90: New test.
1633 * testsuite/libgomp.fortran/depend-6.f90: New test.
1634 * testsuite/libgomp.fortran/depend-7.f90: New test.
1635
b584b32b
MV
16362022-07-04 Tobias Burnus <tobias@codesourcery.com>
1637
1638 Backport from mainline:
1639 2022-05-16 Marcel Vollweiler <marcel@codesourcery.com>
1640
1641 * testsuite/libgomp.c++/target-has-device-addr-7.C: New test.
1642 * testsuite/libgomp.c++/target-has-device-addr-8.C: New test.
1643 * testsuite/libgomp.c++/target-has-device-addr-9.C: New test.
1644
438b4cec
TB
16452022-07-04 Tobias Burnus <tobias@codesourcery.com>
1646
1647 Backport from mainline:
1648 2022-05-13 Tobias Burnus <tobias@codesourcery.com>
1649
1650 * testsuite/libgomp.fortran/target-nowait-array-section.f90: New test.
1651
edd96cdd
TB
16522022-07-04 Tobias Burnus <tobias@codesourcery.com>
1653
1654 Backport from mainline:
1655 2022-05-13 Tobias Burnus <tobias@codesourcery.com>
1656
1657 * testsuite/libgomp.fortran/target-nowait-array-section.f90: New test.
1658
12d14a9a
AS
16592022-06-20 Andrew Stubbs <ams@codesourcery.com>
1660
1661 * plugin/plugin-gcn.c (struct usm_splay_tree_key_s): New.
1662 (usm_splay_compare): New.
1663 (splay_tree_prefix): New.
1664 (GOMP_OFFLOAD_usm_alloc): New.
1665 (GOMP_OFFLOAD_usm_free): New.
1666 (GOMP_OFFLOAD_is_usm_ptr): New.
1667 (GOMP_OFFLOAD_supported_features): Move into the OpenMP API fold.
1668 Add GOMP_REQUIRES_UNIFIED_ADDRESS and
1669 GOMP_REQUIRES_UNIFIED_SHARED_MEMORY.
1670 (gomp_fatal): New.
1671 (splay_tree_c): New.
1672 * testsuite/lib/libgomp.exp (check_effective_target_omp_usm): New.
1673 * testsuite/libgomp.c++/usm-1.C: Use dg-require-effective-target.
1674 * testsuite/libgomp.c-c++-common/requires-1.c: Likewise.
1675 * testsuite/libgomp.c/usm-1.c: Likewise.
1676 * testsuite/libgomp.c/usm-2.c: Likewise.
1677 * testsuite/libgomp.c/usm-3.c: Likewise.
1678 * testsuite/libgomp.c/usm-4.c: Likewise.
1679 * testsuite/libgomp.c/usm-5.c: Likewise.
1680 * testsuite/libgomp.c/usm-6.c: Likewise.
1681
b845d2f6
KCY
16822022-05-30 Kwok Cheung Yeung <kcy@codesourcery.com>
1683
1684 * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c
1685 (cb_compute_construct_end): Remove COPYIN block.
1686 (main): Remove assignments to acc_async.
1687 * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c
1688 (cb_enter_data_end): Remove COPYIN block.
1689 (main): Remove assignment to acc_async.
1690
f7970642
KCY
16912022-05-31 Kwok Cheung Yeung <kcy@codesourcery.com>
1692
1693 * testsuite/libgomp.oacc-c-c++-common/pr85381-3.c (foo_v, foo_w):
1694 Re-add dg-warning entries.
1695
e99ae0c0
TS
16962022-05-12 Thomas Schwinge <thomas@codesourcery.com>
1697
1698 Backport from mainline:
1699 2022-05-12 Thomas Schwinge <thomas@codesourcery.com>
1700
1701 * plugin/Makefrag.am (libgomp_plugin_nvptx_la_CPPFLAGS)
1702 [PLUGIN_NVPTX_DYNAMIC]: Don't append '$(PLUGIN_NVPTX_CPPFLAGS)'.
1703 (libgomp_plugin_nvptx_la_LDFLAGS) [PLUGIN_NVPTX_DYNAMIC]: Don't
1704 append '$(PLUGIN_NVPTX_LDFLAGS)'.
1705 * Makefile.in: Regenerate.
1706
6468241f
TS
17072022-05-05 Thomas Schwinge <thomas@codesourcery.com>
1708
1709 Backport from mainline:
1710 2022-05-05 Thomas Schwinge <thomas@codesourcery.com>
1711
1712 * Makefile.am (libgomp_la_LIBADD): Initialize.
1713 * plugin/configfrag.ac (DL_LIBS): New.
1714 (PLUGIN_GCN_LIBS): Remove.
1715 (PLUGIN_NVPTX_LIBS): Don't set in the 'PLUGIN_NVPTX_DYNAMIC' case.
1716 * plugin/Makefrag.am (libgomp_la_LIBADD)
1717 (libgomp_plugin_gcn_la_LIBADD): Consider '$(DL_LIBS)'.
1718 (libgomp_plugin_nvptx_la_LIBADD) <PLUGIN_NVPTX_DYNAMIC>: Likewise.
1719 * Makefile.in: Regenerate.
1720 * config.h.in: Likewise.
1721 * configure: Likewise.
1722 * testsuite/Makefile.in: Likewise.
1723
d2a0dc62
TS
17242022-04-07 Thomas Schwinge <thomas@codesourcery.com>
1725
1726 Backport from mainline:
1727 2022-04-07 Thomas Schwinge <thomas@codesourcery.com>
1728
1729 * plugin/Makefrag.am: Handle 'PLUGIN_NVPTX_DYNAMIC'.
1730 * plugin/configfrag.ac (PLUGIN_NVPTX_DYNAMIC): Change
1731 'AC_DEFINE_UNQUOTED' into 'AM_CONDITIONAL'.
1732 * plugin/plugin-nvptx.c: Split 'PLUGIN_NVPTX_DYNAMIC' into
1733 'PLUGIN_NVPTX_INCLUDE_SYSTEM_CUDA_H' and
1734 'PLUGIN_NVPTX_LINK_LIBCUDA'.
1735 * Makefile.in: Regenerate.
1736 * config.h.in: Likewise.
1737 * configure: Likewise.
1738
828926a5
TS
17392022-05-05 Thomas Schwinge <thomas@codesourcery.com>
1740
1741 Backport from mainline:
1742 2022-05-05 Thomas Schwinge <thomas@codesourcery.com>
1743
1744 * plugin/configfrag.ac: Don't 'AC_SUBST' and 'AC_DEFINE_UNQUOTED'
1745 for 'PLUGIN_GCN', 'PLUGIN_NVPTX'.
1746 * Makefile.in: Regenerate.
1747 * config.h.in: Likewise.
1748 * configure: Likewise.
1749 * testsuite/Makefile.in: Likewise.
1750
2e67f6f7
JJ
17512022-05-12 Jakub Jelinek <jakub@redhat.com>
1752
1753 Backport from mainline:
1754 2022-05-12 Jakub Jelinek <jakub@redhat.com>
1755
1756 * libgomp.h (struct gomp_task): Add depend_all_memory member.
1757 * task.c (gomp_init_task): Initialize depend_all_memory.
1758 (gomp_task_handle_depend): Handle omp_all_memory.
1759 (gomp_task_run_post_handle_depend_hash): Clear
1760 parent->depend_all_memory if equal to current task.
1761 (gomp_task_maybe_wait_for_dependencies): Handle omp_all_memory.
1762 * testsuite/libgomp.c-c++-common/depend-1.c: New test.
1763 * testsuite/libgomp.c-c++-common/depend-2.c: New test.
1764 * testsuite/libgomp.c-c++-common/depend-3.c: New test.
1765
55890b26
TS
17662022-04-06 Thomas Schwinge <thomas@codesourcery.com>
1767
1768 Backport from mainline:
1769 2022-04-06 Thomas Schwinge <thomas@codesourcery.com>
1770
1771 * plugin/configfrag.ac: Remove '--with-hsa-runtime',
1772 '--with-hsa-runtime-include', '--with-hsa-runtime-lib' processing.
1773 * Makefile.in: Regenerate.
1774 * configure: Likewise.
1775 * testsuite/Makefile.in: Likewise.
1776
a309e5a1
TS
17772022-04-06 Thomas Schwinge <thomas@codesourcery.com>
1778
1779 Backport from mainline:
1780 2022-04-06 Thomas Schwinge <thomas@codesourcery.com>
1781
1782 * plugin/Makefrag.am (libgomp_plugin_gcn_la_CPPFLAGS): Don't
1783 consider 'PLUGIN_GCN_CPPFLAGS'.
1784 (libgomp_plugin_gcn_la_LDFLAGS): Don't consider
1785 'PLUGIN_GCN_LDFLAGS'.
1786 * plugin/configfrag.ac (PLUGIN_GCN_CPPFLAGS, PLUGIN_GCN_LDFLAGS):
1787 Remove.
1788 * Makefile.in: Regenerate.
1789 * configure: Likewise.
1790 * testsuite/Makefile.in: Likewise.
1791
125d1755
TS
17922022-04-06 Thomas Schwinge <thomas@codesourcery.com>
1793
1794 Backport from mainline:
1795 2022-04-06 Thomas Schwinge <thomas@codesourcery.com>
1796
1797 * plugin/configfrag.ac (HSA_RUNTIME_CPPFLAGS)
1798 (HSA_RUNTIME_LDFLAGS): Remove.
1799 * configure: Regenerate.
1800
cb3cdd60
TS
18012022-04-06 Thomas Schwinge <thomas@codesourcery.com>
1802
1803 Backport from mainline:
1804 2022-04-06 Thomas Schwinge <thomas@codesourcery.com>
1805
1806 * testsuite/lib/libgomp.exp (libgomp_init): Don't
1807 'append always_ld_library_path ":$hsa_runtime_lib"'.
1808 * testsuite/libgomp-test-support.exp.in (hsa_runtime_lib): Don't set.
1809
270bfaf9
TS
18102022-05-10 Thomas Schwinge <thomas@codesourcery.com>
1811
1812 Backport from mainline:
1813 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
1814
1815 * testsuite/libgomp.fortran/use_device_addr-5.f90: Fix up
1816 multi-device testing.
1817
caa81345
MV
18182022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
1819
1820 Backport from mainline:
1821 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
1822
1823 * libgomp.map: Added omp_target_is_accessible.
1824 * libgomp.texi: Tagged omp_target_is_accessible as supported.
1825 * omp.h.in: Added omp_target_is_accessible.
1826 * omp_lib.f90.in: Added interface for omp_target_is_accessible.
1827 * omp_lib.h.in: Likewise.
1828 * target.c (omp_target_is_accessible): Added implementation of
1829 omp_target_is_accessible.
1830 * testsuite/libgomp.c-c++-common/target-is-accessible-1.c: New test.
1831 * testsuite/libgomp.fortran/target-is-accessible-1.f90: New test.
1832
67c9b129
SL
18332022-05-05 Sandra Loosemore <sandra@codesourcery.com>
1834
1835 Backport from mainline:
1836 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
1837
1838 * libgomp.texi (OpenMP 5.0): Feature is now fully supported.
1839
d9070421
TB
18402022-05-04 Tobias Burnus <tobias@codesourcery.com>
1841
1842 Backport from master:
1843 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
1844
1845 * plugin/plugin-gcn.c (isa_matches_agent): Suggest -foffload-options.
1846
28c49e0f
MV
18472022-05-02 Marcel Vollweiler <marcel@codesourcery.com>
1848
1849 Backport from mainline:
1850 2022-05-02 Marcel Vollweiler <marcel@codesourcery.com>
1851
1852 * libgomp.map: Added omp_get_mapped_ptr.
1853 * libgomp.texi: Tagged omp_get_mapped_ptr as supported.
1854 * omp.h.in: Added omp_get_mapped_ptr.
1855 * omp_lib.f90.in: Added interface for omp_get_mapped_ptr.
1856 * omp_lib.h.in: Likewise.
1857 * target.c (omp_get_mapped_ptr): Added implementation of
1858 omp_get_mapped_ptr.
1859 * testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c: New test.
1860 * testsuite/libgomp.c-c++-common/get-mapped-ptr-2.c: New test.
1861 * testsuite/libgomp.c-c++-common/get-mapped-ptr-3.c: New test.
1862 * testsuite/libgomp.c-c++-common/get-mapped-ptr-4.c: New test.
1863 * testsuite/libgomp.fortran/get-mapped-ptr-1.f90: New test.
1864 * testsuite/libgomp.fortran/get-mapped-ptr-2.f90: New test.
1865 * testsuite/libgomp.fortran/get-mapped-ptr-3.f90: New test.
1866 * testsuite/libgomp.fortran/get-mapped-ptr-4.f90: New test.
1867
18300fba
AS
18682022-02-24 Andrew Stubbs <ams@codesourcery.com>
1869
1870 Backport from mainline:
1871 2022-02-24 Andrew Stubbs <ams@codesourcery.com>
1872
1873 * plugin/plugin-gcn.c (EF_AMDGPU_MACH): Add
1874 EF_AMDGPU_MACH_AMDGCN_GFX90a.
1875 (gcn_gfx90a_s): New.
1876 (isa_hsa_name): Support gfx90a.
1877 (isa_code): Likewise.
1878
2bdbbdb6
TB
18792022-05-23 Tobias Burnus <tobias@codesourcery.com>
1880
1881 Backport from mainline:
1882 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
1883
1884 PR fortran/104949
1885 * target.c (gomp_map_vars_internal, copy_firstprivate_data):
1886 Support attach for GOMP_MAP_FIRSTPRIVATE.
1887 * testsuite/libgomp.fortran/target-firstprivate-1.f90: New test.
1888 * testsuite/libgomp.fortran/target-firstprivate-2.f90: New test.
1889 * testsuite/libgomp.fortran/target-firstprivate-3.f90: New test.
1890
f0ac4511
TB
18912022-05-09 Kwok Cheung Yeung <kcy@codesourcery.com>
1892
1893 Backport from master:
1894 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
1895
1896 * testsuite/libgomp.fortran/use_device_addr-5.f90: New test.
1897
02b49557
AS
18982022-04-13 Andrew Stubbs <ams@codesourcery.com>
1899
1900 * testsuite/libgomp.c/alloc-pinned-1.c: Autodetect page size.
1901 * testsuite/libgomp.c/alloc-pinned-2.c: Likewise.
1902 * testsuite/libgomp.c/alloc-pinned-3.c: Likewise.
1903 * testsuite/libgomp.c/alloc-pinned-4.c: Likewise.
1904 * testsuite/libgomp.c/alloc-pinned-5.c: Likewise.
1905 * testsuite/libgomp.c/alloc-pinned-6.c: Likewise.
1906 * testsuite/libgomp.c/alloc-pinned-7.c: Clean up.
1907
39bdcd84
AS
19082022-04-02 Andrew Stubbs <ams@codesourcery.com>
1909
1910 * testsuite/libgomp.c/usm-6.c: Add omp_target_alloc.
1911
8099ba0e
HAQ
19122022-03-31 Abid Qadeer <abidh@codesourcery.com>
1913
1914 * testsuite/libgomp.fortran/allocate-2.f90: Remove commented lines.
1915 Add deallocate. Remove omp_atk_pool_size trait.
1916
f3fd38e3
AS
19172022-03-29 Andrew Stubbs <ams@codesourcery.com>
1918
1919 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_supported_features): Allow
1920 GOMP_REQUIRES_UNIFIED_ADDRESS and GOMP_REQUIRES_UNIFIED_SHARED_MEMORY.
1921
842df187
AS
19222022-03-11 Andrew Stubbs <ams@codesourcery.com>
1923
1924 Backport of the patch posted at
1925 https://gcc.gnu.org/pipermail/gcc-patches/2022-March/591354.html
1926
1927 * config/linux/allocator.c (always_pinned_mode): New variable.
1928 (GOMP_enable_pinned_mode): New function.
1929 (linux_memspace_alloc): Disable pinning when always_pinned_mode set.
1930 (linux_memspace_calloc): Likewise.
1931 (linux_memspace_free): Likewise.
1932 (linux_memspace_realloc): Likewise.
1933 * libgomp.map (GOMP_5.1.1): New version space with
1934 GOMP_enable_pinned_mode.
1935 * testsuite/libgomp.c/alloc-pinned-7.c: New test.
1936
54c2d861
HAQ
19372022-03-11 Abid Qadeer <abidh@codesourcery.com>
1938
1939 Backport of a patch posted at
1940 https://gcc.gnu.org/pipermail/gcc-patches/2022-March/591353.html
1941
1942 * testsuite/libgomp.c/usm-6.c: New test.
1943 * testsuite/libgomp.c++/usm-1.C: Likewise.
1944
84914e19
AS
19452022-03-11 Andrew Stubbs <ams@codesourcery.com>
1946
1947 Backport of the patch posted at
1948 https://gcc.gnu.org/pipermail/gcc-patches/2022-March/591352.html
1949
1950 * allocator.c (omp_max_predefined_alloc): Update.
1951 (omp_aligned_alloc): Don't fallback ompx_host_mem_alloc.
1952 (omp_aligned_calloc): Likewise.
1953 (omp_realloc): Likewise.
1954 * config/linux/allocator.c (linux_memspace_alloc): Handle USM.
1955 (linux_memspace_calloc): Handle USM.
1956 (linux_memspace_free): Handle USM.
1957 (linux_memspace_realloc): Handle USM.
1958 * config/nvptx/allocator.c (nvptx_memspace_alloc): Reject
1959 ompx_host_mem_alloc.
1960 (nvptx_memspace_calloc): Likewise.
1961 (nvptx_memspace_realloc): Likewise.
1962 * libgomp-plugin.h (GOMP_OFFLOAD_usm_alloc): New prototype.
1963 (GOMP_OFFLOAD_usm_free): New prototype.
1964 (GOMP_OFFLOAD_is_usm_ptr): New prototype.
1965 * libgomp.h (gomp_usm_alloc): New prototype.
1966 (gomp_usm_free): New prototype.
1967 (gomp_is_usm_ptr): New prototype.
1968 (struct gomp_device_descr): Add USM functions.
1969 * omp.h.in (omp_memspace_handle_t): Add ompx_unified_shared_mem_space
1970 and ompx_host_mem_space.
1971 (omp_allocator_handle_t): Add ompx_unified_shared_mem_alloc and
1972 ompx_host_mem_alloc.
1973 * omp_lib.f90.in: Likewise.
1974 * plugin/plugin-nvptx.c (nvptx_alloc): Add "usm" parameter.
1975 Call cuMemAllocManaged as appropriate.
1976 (GOMP_OFFLOAD_alloc): Move internals to ...
1977 (GOMP_OFFLOAD_alloc_1): ... this, and add usm parameter.
1978 (GOMP_OFFLOAD_usm_alloc): New function.
1979 (GOMP_OFFLOAD_usm_free): New function.
1980 (GOMP_OFFLOAD_is_usm_ptr): New function.
1981 * target.c (gomp_map_vars_internal): Add USM support.
1982 (gomp_usm_alloc): New function.
1983 (gomp_usm_free): New function.
1984 (gomp_load_plugin_for_device): New function.
1985 * testsuite/libgomp.c/usm-1.c: New test.
1986 * testsuite/libgomp.c/usm-2.c: New test.
1987 * testsuite/libgomp.c/usm-3.c: New test.
1988 * testsuite/libgomp.c/usm-4.c: New test.
1989 * testsuite/libgomp.c/usm-5.c: New test.
1990
f6c61b32
AS
19912022-03-11 Andrew Stubbs <ams@codesourcery.com>
1992
1993 Backport of a patch posted at
1994 https://gcc.gnu.org/pipermail/gcc-patches/2022-January/589355.html
1995
1996 * allocator.c (MEMSPACE_VALIDATE): New macro.
1997 (omp_aligned_alloc): Use MEMSPACE_VALIDATE.
1998 (omp_aligned_calloc): Likewise.
1999 (omp_realloc): Likewise.
2000 * config/nvptx/allocator.c (nvptx_memspace_validate): New function.
2001 (MEMSPACE_VALIDATE): New macro.
2002 * testsuite/libgomp.c/allocators-4.c (main): Add access trait.
2003 * testsuite/libgomp.c/allocators-6.c (main): Add access trait.
2004 * testsuite/libgomp.c/allocators-7.c: New test.
2005
c3ea2b44
AS
20062022-03-11 Andrew Stubbs <ams@codesourcery.com>
2007
2008 Backport of a patch posted at
2009 https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588951.html
2010
2011 * allocator.c (omp_max_predefined_alloc): Update.
2012 (omp_aligned_alloc): Support ompx_pinned_mem_alloc.
2013 (omp_free): Likewise.
2014 (omp_aligned_calloc): Likewise.
2015 (omp_realloc): Likewise.
2016 * omp.h.in (omp_allocator_handle_t): Add ompx_pinned_mem_alloc.
2017 * omp_lib.f90.in: Add ompx_pinned_mem_alloc.
2018 * testsuite/libgomp.c/alloc-pinned-5.c: New test.
2019 * testsuite/libgomp.c/alloc-pinned-6.c: New test.
2020 * testsuite/libgomp.fortran/alloc-pinned-1.f90: New test.
2021
ab7520b3
AS
20222022-03-10 Andrew Stubbs <ams@codesourcery.com>
2023
2024 Backport of a patch posted at
2025 https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588360.html
2026
2027 * allocator.c (MEMSPACE_ALLOC): Add PIN.
2028 (MEMSPACE_CALLOC): Add PIN.
2029 (MEMSPACE_REALLOC): Add PIN.
2030 (MEMSPACE_FREE): Add PIN.
2031 (xmlock): New function.
2032 (omp_init_allocator): Don't disallow the pinned trait.
2033 (omp_aligned_alloc): Add pinning to all MEMSPACE_* calls.
2034 (omp_aligned_calloc): Likewise.
2035 (omp_realloc): Likewise.
2036 (omp_free): Likewise.
2037 * config/linux/allocator.c: New file.
2038 * config/nvptx/allocator.c (MEMSPACE_ALLOC): Add PIN.
2039 (MEMSPACE_CALLOC): Add PIN.
2040 (MEMSPACE_REALLOC): Add PIN.
2041 (MEMSPACE_FREE): Add PIN.
2042 * testsuite/libgomp.c/alloc-pinned-1.c: New test.
2043 * testsuite/libgomp.c/alloc-pinned-2.c: New test.
2044 * testsuite/libgomp.c/alloc-pinned-3.c: New test.
2045 * testsuite/libgomp.c/alloc-pinned-4.c: New test.
2046
d4ef7517
HAQ
20472022-03-09 Abid Qadeer <abidh@codesourcery.com>
2048
2049 Backport of a patch posted at
2050 https://gcc.gnu.org/pipermail/gcc-patches/2022-January/588372.html
2051
2052 * testsuite/libgomp.fortran/allocate-2.f90: New test.
2053
a6c1eccf
TB
20542022-03-01 Tobias Burnus <tobias@codesourcery.com>
2055
2056 * testsuite/libgomp.fortran/allocatable-comp.f90: New test.
2057 * testsuite/libgomp.fortran/map-alloc-comp-3.f90: New test.
2058 * testsuite/libgomp.fortran/map-alloc-comp-4.f90: New test.
2059 * testsuite/libgomp.fortran/map-alloc-comp-5.f90: New test.
2060 * testsuite/libgomp.fortran/map-alloc-comp-6.f90: New test.
2061 * testsuite/libgomp.fortran/map-alloc-comp-7.f90: New test.
2062
faf2c465
CLT
20632022-02-24 Chung-Lin Tang <cltang@codesourcery.com>
2064
2065 * testsuite/libgomp.c-c++-common/ptr-attach-2.c: New test.
2066
2e950eca
KCY
20672022-01-28 Kwok Cheung Yeung <kcy@codesourcery.com>
2068
2069 * testsuite/libgomp.c-c++-common/metadirective-2.c (main): Add
2070 expected warning.
2071 * testsuite/libgomp.fortran/metadirective-2.f90 (test): Likewise.
2072
da1da230
KCY
20732022-01-25 Kwok Cheung Yeung <kcy@codesourcery.com>
2074
2075 * Makefile.am (libgomp_la_SOURCES): Add selector.c.
2076 * Makefile.am: Regenerate.
2077 * config/gcn/selector.c: New.
2078 * config/linux/selector.c: New.
2079 * config/linux/x86/selector.c: New.
2080 * config/nvptx/selector.c: New.
2081 * libgomp-plugin.h (GOMP_OFFLOAD_evaluate_device): New.
2082 * libgomp.h (struct gomp_device_descr): Add evaluate_device_func field.
2083 * libgomp.map (GOMP_5.1): Add GOMP_evaluate_target_device.
2084 * libgomp_g.h (GOMP_evaluate_current_device): New.
2085 (GOMP_evaluate_target_device): New.
2086 * oacc-host.c (host_evaluate_device): New.
2087 (host_openacc_exec): Initialize evaluate_device_func field to
2088 host_evaluate_device.
2089 * plugin/plugin-gcn.c (GOMP_OFFLOAD_evaluate_device): New.
2090 * plugin/plugin-nvptx.c (struct ptx_device): Add compute_major and
2091 compute_minor fields.
2092 (nvptx_open_device): Read compute capability information from device.
2093 (CHECK_ISA): New macro.
2094 (GOMP_OFFLOAD_evaluate_device): New.
2095 * selector.c: New.
2096 * target.c (GOMP_evaluate_target_device): New.
2097 (gomp_load_plugin_for_device): Load evaulate_device plugin function.
2098 * testsuite/libgomp.c-c++-common/metadirective-5.c: New testcase.
2099 * testsuite/libgomp.fortran/metadirective-5.f90: New testcase.
2100
d7b611a5
KCY
21012022-01-25 Kwok Cheung Yeung <kcy@codesourcery.com>
2102
2103 * testsuite/libgomp.c-c++-common/metadirective-1.c: New.
2104 * testsuite/libgomp.c-c++-common/metadirective-2.c: New.
2105 * testsuite/libgomp.c-c++-common/metadirective-3.c: New.
2106 * testsuite/libgomp.c-c++-common/metadirective-4.c: New.
2107 * testsuite/libgomp.fortran/metadirective-1.f90: New.
2108 * testsuite/libgomp.fortran/metadirective-2.f90: New.
2109 * testsuite/libgomp.fortran/metadirective-3.f90: New.
2110 * testsuite/libgomp.fortran/metadirective-4.f90: New.
2111
1486a6a4
KCY
21122022-06-21 Kwok Cheung Yeung <kcy@codesourcery.com>
2113
2114 * config/nvptx/team.c (gomp_nvptx_main): Initialize shared_pool_size
2115 to zero. Do not use dynamic_smem_size register if PTX version lower
2116 than 4.1.
2117
c5d1d765
AS
21182021-12-22 Andrew Stubbs <ams@codesourcery.com>
2119
2120 * allocator.c (MEMSPACE_ALLOC): New macro.
2121 (MEMSPACE_CALLOC): New macro.
2122 (MEMSPACE_REALLOC): New macro.
2123 (MEMSPACE_FREE): New macro.
2124 (dynamic_smem_size): New constants.
2125 (omp_alloc): Use MEMSPACE_ALLOC.
2126 Implement fall-backs for predefined allocators.
2127 (omp_free): Use MEMSPACE_FREE.
2128 (omp_calloc): Use MEMSPACE_CALLOC.
2129 Implement fall-backs for predefined allocators.
2130 (omp_realloc): Use MEMSPACE_REALLOC.
2131 Implement fall-backs for predefined allocators.
2132 * config/nvptx/team.c (__nvptx_lowlat_heap_root): New variable.
2133 (__nvptx_lowlat_pool): New asm varaible.
2134 (gomp_nvptx_main): Initialize the low-latency heap.
2135 * plugin/plugin-nvptx.c (lowlat_pool_size): New variable.
2136 (GOMP_OFFLOAD_init_device): Read the GOMP_NVPTX_LOWLAT_POOL envvar.
2137 (GOMP_OFFLOAD_run): Apply lowlat_pool_size.
2138 * config/nvptx/allocator.c: New file.
2139 * testsuite/libgomp.c/allocators-1.c: New test.
2140 * testsuite/libgomp.c/allocators-2.c: New test.
2141 * testsuite/libgomp.c/allocators-3.c: New test.
2142 * testsuite/libgomp.c/allocators-4.c: New test.
2143 * testsuite/libgomp.c/allocators-5.c: New test.
2144 * testsuite/libgomp.c/allocators-6.c: New test.
2145
89cb5556
KCY
21462022-06-21 Kwok Cheung Yeung <kcy@codesourcery.com>
2147
2148 * plugin/cuda-lib.def (cuMemAllocManaged): Add new call.
2149 (cuPointerGetAttribute): Likewise.
2150
e85cf3eb
FH
21512021-11-16 Frederik Harwath <frederik@codesourcery.com>
2152
2153 * testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c: Adjust.
2154 * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Adjust.
2155 * testsuite/libgomp.oacc-c-c++-common/pr84955-1.c: Adjust.
2156 * testsuite/libgomp.oacc-c-c++-common/pr85381-2.c: Adjust.
2157 * testsuite/libgomp.oacc-c-c++-common/pr85381-3.c: Adjust.
2158 * testsuite/libgomp.oacc-c-c++-common/pr85381-4.c: Adjust.
2159 * testsuite/libgomp.oacc-c-c++-common/pr85486-2.c: Adjust.
2160 * testsuite/libgomp.oacc-c-c++-common/pr85486-3.c: Adjust.
2161 * testsuite/libgomp.oacc-c-c++-common/pr85486.c: Adjust.
2162 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Adjust.
2163 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c: Adjust.
2164 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: Adjust.
2165 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c: Adjust.
2166 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c: Adjust.
2167 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c: Adjust.
2168 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c: Adjust.
2169 * testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90: Adjust.
2170 * testsuite/libgomp.oacc-fortran/pr94358-1.f90: Adjust.
2171 * testsuite/libgomp.oacc-fortran/parallel-loop-auto-reduction-2.f90: Removed.
2172
a7e863fc
AS
21732021-11-16 Andrew Stubbs <ams@codesourcery.com>
2174
2175 * testsuite/libgomp.oacc-c-c++-common/runtime-alias-check-1.c: New test.
2176 * testsuite/libgomp.oacc-c-c++-common/runtime-alias-check-2.c: New test.
2177
ab53d5a6
AS
21782021-11-16 Andrew Stubbs <ams@codesourcery.com>
2179 Thomas Schwinge <thomas@codesourcery.com>
2180
2181 * testsuite/libgomp.oacc-c-c++-common/kernels-decompose-1.c:
2182 Expect optimization messages.
2183 * testsuite/libgomp.oacc-fortran/pr94358-1.f90: Likewise.
2184
22e26296
FH
21852021-11-16 Frederik Harwath <frederik@codesourcery.com>
2186
2187 * testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c: Adjust
2188 expectations.
2189
900a5576
FH
21902021-11-16 Frederik Harwath <frederik@codesourcery.com>
2191
2192 * testsuite/libgomp.oacc-fortran/parallel-loop-auto-reduction-2.f90:
2193 New test.
2194
9c7a6472
FH
21952021-11-16 Frederik Harwath <frederik@codesourcery.com>
2196 Thomas Schwinge <thomas@codesourcery.com>
2197
2198 * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Adjust.
2199 * testsuite/libgomp.oacc-fortran/kernels-independent.f90: Adjust.
2200 * testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Adjust.
2201 * testsuite/libgomp.oacc-fortran/pr94358-1.f90: Adjust.
2202
3e8b51d1
FH
22032021-11-16 Frederik Harwath <frederik@codesourcery.com>
2204 Thomas Schwinge <thomas@codesourcery.com>
2205
2206 * testsuite/libgomp.oacc-c-c++-common/pr85486-2.c: Adjust
2207 expected output to pass name changes due to the pass
2208 reordering and cloning.
2209 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Likewise.
2210 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c: Likewise.
2211 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-3.c: Likewise.
2212 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c: Likewise.
2213 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c: Likewise.
2214 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c: Likewise
2215 * testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c: Likewise.
2216
3f4978ee
TB
22172021-10-21 Tobias Burnus <tobias@codesourcery.com>
2218
2219 * testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90: Compile
2220 with -Wopenacc-parallelism.
2221 * testsuite/libgomp.oacc-fortran/declare-allocatable-3.f90: Likewise.
2222
157e8afa
AS
22232021-08-03 Andrew Stubbs <ams@codesourcery.com>
2224
2225 * config/gcn/bar.h (gomp_barrier_init): Limit thread count to the
2226 actual physical number.
2227 * config/gcn/team.c (gomp_team_start): Don't attempt to set up
2228 threads that do not exist.
2229
404817a4
JB
22302021-06-02 Julian Brown <julian@codesourcery.com>
2231
2232 * testsuite/libgomp.oacc-c-c++-common/deep-copy-15.c: New test.
2233 * testsuite/libgomp.oacc-c-c++-common/deep-copy-16.c: New test.
2234 * testsuite/libgomp.oacc-c++/deep-copy-17.C: New test.
2235
47e5ba64
TS
22362021-03-25 Thomas Schwinge <thomas@codesourcery.com>
2237
2238 * target.c (__requires_mask_table, __requires_mask_table_end): Add
2239 '__attribute__((weak))'.
2240
f3d77a2a
KCY
22412021-03-01 Kwok Cheung Yeung <kcy@codesourcery.com>
2242
2243 * testsuite/libgomp.c-c++-common/collapse-4.c: New.
2244 * testsuite/libgomp.fortran/collapse5.f90: New.
2245
86a04ff9
AS
22462021-02-23 Andrew Stubbs <ams@codesourcery.com>
2247
2248 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_alloc): Remove early call to
2249 nvptx_stacks_free.
2250
6ab6303f
CLT
22512021-02-02 Chung-Lin Tang <cltang@codesourcery.com>
2252
2253 * libgomp-plugin.h (GOMP_OFFLOAD_supported_features): New declaration.
2254 * libgomp.h (struct gomp_device_descr): New 'supported_features_func'
2255 plugin hook field.
2256 * oacc-host.c (host_supported_features): New host hook function.
2257 (host_dispatch): Initialize 'supported_features_func' host hook.
2258 * plugin/plugin-gcn.c (GOMP_OFFLOAD_supported_features): New function.
2259 * plugin/plugin-nvptx.c (GOMP_OFFLOAD_supported_features): Likewise.
2260 * target.c (<stdio.h>): Add include of standard header.
2261 (gomp_requires_mask): New static variable.
2262 (__requires_mask_table): New declaration.
2263 (__requires_mask_table_end): Likewise.
2264
11a9acbd
JB
22652021-01-13 Julian Brown <julian@codesourcery.com>
2266
2267 * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Adjust for loop
2268 lowering changes.
2269 * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Likewise.
2270 * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Likewise.
2271 * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Likewise.
2272 * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Likewise.
2273 * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Likewise.
2274
598ef2eb
TB
22752020-07-16 Tobias Burnus <tobias@codesourcery.com>
2276
2277 * testsuite/libgomp.oacc-fortran/firstprivate-int.f90: Use
2278 highest available integer kind instead of assuming that kind=16 exists.
2279
f6cdb8cc
KCY
22802020-03-24 Kwok Cheung Yeung <kcy@codesourcery.com>
2281
2282 * testsuite/libgomp.oacc-c-c++-common/data-firstprivate-1.c: XFAIL
2283 execution test.
2284
85626d15
JB
22852019-09-17 Julian Brown <julian@codesourcery.com>
2286 Kwok Cheung Yeung <kcy@codesourcery.com>
2287
2288 * testsuite/libgomp.oacc-c-c++-common/deep-copy-10.c (main): Fix
2289 async-safety issue. Increase number of iterations.
2290
924b6fcc
JB
22912021-04-07 Kwok Cheung Yeung <kcy@codesourcery.com>
2292
2293 * oacc-mem.c (goacc_enter_data_internal): Unlock mutex before calling
2294 gomp_acc_declare_allocate and relock it afterwards.
2295
22962018-10-04 Cesar Philippidis <cesar@codesourcery.com>
2297 Julian Brown <julian@codesourcery.com>
2298
2299 * libgomp.h (gomp_acc_declare_allocate): Remove prototype.
2300 * oacc-mem.c (gomp_acc_declare_allocate): New function.
2301 * oacc-parallel.c (goacc_enter_data_internal): Handle
2302 GOMP_MAP_DECLARE_ALLOCATE. Pass new pointer argument to
2303 gomp_acc_declare_allocate.
2304 (goacc_exit_data_internal): Handle GOMP_MAP_DECLARE_DEALLOCATE.
2305 Unlock device mutex around gomp_acc_declare_allocate call. Pass
2306 new pointer argument. Handle group pointer mapping for deallocate.
2307 (find_group_last): Handle GOMP_MAP_DECLARE_ALLOCATE and
2308 GOMP_MAP_DECLARE_DEALLOCATE groupings.
2309 * testsuite/libgomp.oacc-fortran/allocatable-scalar.f90: New test.
2310 * testsuite/libgomp.oacc-fortran/declare-allocatable-1.f90: New test.
2311 * testsuite/libgomp.oacc-fortran/declare-allocatable-2.f90: New test.
2312 * testsuite/libgomp.oacc-fortran/declare-allocatable-3.f90: New test.
2313 * testsuite/libgomp.oacc-fortran/declare-allocatable-4.f90: New test.
2314
719f93c8
JB
23152019-09-17 Julian Brown <julian@codesourcery.com>
2316
2317 * oacc-host.c (host_openacc_async_queue_callback): Invoke callback
2318 function immediately.
2319 * oacc-parallel.c (struct async_prof_callback_info, async_prof_dispatch,
2320 queue_async_prof_dispatch): New.
2321 (GOACC_parallel_keyed): Call queue_async_prof_dispatch for asynchronous
2322 profile-event dispatches.
2323 (GOACC_update): Likewise.
2324 * oacc-mem.c (GOACC_enter_exit_data): Call queue_async_prof_dispatch
2325 for asynchronous profile-event dispatches.
2326 * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c
2327 (cb_compute_construct_start): Remove/fix TODO.
2328 * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c
2329 (cb_exit_data_start): Tweak expected state values.
2330 (cb_exit_data_end): Likewise.
2331 (cb_compute_construct_start): Remove/fix TODO.
2332 (cb_compute_construct_end): Don't do adjustments for
2333 acc_ev_enqueue_launch_start/acc_ev_enqueue_launch_end callbacks.
2334 (cb_compute_construct_end): Tweak expected state values.
2335 (cb_enqueue_launch_start, cb_enqueue_launch_end): Don't expect
2336 launch-enqueue operations to happen synchronously with respect to
2337 profiling events on async streams.
2338 (main): Tweak expected state values.
2339 * testsuite/libgomp.oacc-c-c++-common/lib-94.c (main): Reorder
2340 operations for async-safety.
2341
684d44a3
JB
23422019-09-05 Julian Brown <julian@codesourcery.com>
2343
2344 * testsuite/libgomp.oacc-fortran/lib-13.f90: End data region after
2345 wait API calls.
2346
d6c3e628
JB
23472019-08-08 Julian Brown <julian@codesourcery.com>
2348
2349 * plugin/plugin-gcn.c (GOMP_OFFLOAD_openacc_exec_params,
2350 GOMP_OFFLOAD_openacc_async_exec_params): New functions.
2351
f398407c
JB
23522019-07-31 Julian Brown <julian@codesourcery.com>
2353
2354 * config/nvptx/gomp_print.c (gomp_print_string, gomp_print_integer,
2355 gomp_print_double): New.
2356
833ff20b
KCY
23572019-01-23 Thomas Schwinge <thomas@codesourcery.com>
2358
2359 * testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c: Update.
2360
23612018-12-20 Maciej W. Rozycki <macro@codesourcery.com>
2362
2363 * oacc-init.c (get_property_any): Add profiling code.
2364
23652017-02-28 Thomas Schwinge <thomas@codesourcery.com>
2366
2367 * Makefile.am (libgomp_la_SOURCES): Add
2368 oacc-profiling-acc_register_library.c.
2369 * Makefile.in: Regenerate.
2370 * libgomp.texi: Remove paragraph about acc_register_library.
2371 * oacc-parallel.c (GOACC_parallel_keyed_internal): Set device_api for
2372 profiling.
2373 * oacc-profiling-acc_register_library.c: New file.
2374 * oacc-profiling.c (goacc_profiling_initialize): Call
2375 acc_register_library. Avoid duplicate registration.
2376 (acc_register_library): Remove.
2377 * config/nvptx/oacc-profiling-acc_register_library.c:
2378 New empty file.
2379 * config/nvptx/oacc-profiling.c: Likewise.
2380 * testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c: Remove
2381 call to acc_register_library.
2382 * testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Likewise.
2383 * testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c: Likewise.
2384 * testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c: Likewise.
2385 * testsuite/libgomp.oacc-c-c++-common/acc_prof-valid_bytes-1.c:
2386 Likewise.
2387 * testsuite/libgomp.oacc-c-c++-common/acc_prof-version-1.c: Likewise.
2388
47aa908f
JB
23892019-05-16 Julian Brown <julian@codesourcery.com>
2390
2391 * testsuite/libgomp.oacc-c-c++-common/kernels-for-index-reuse-1.c: New
2392 test.
2393
de9f5e0c
JB
23942019-01-09 Julian Brown <julian@codesourcery.com>
2395
2396 * libgomp.texi: Update mentions of OpenACC version to 2.6. Update
2397 section numbers to match version 2.6 of the spec.
2398
eadd78ea
TS
23992019-01-30 Thomas Schwinge <thomas@codesourcery.com>
2400
2401 * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-2.c:
2402 Add "--param=openacc-kernels=parloops".
2403 * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta-3.c:
2404 Likewise.
2405 * testsuite/libgomp.oacc-c-c++-common/kernels-alias-ipa-pta.c:
2406 Likewise.
2407 * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
2408 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Likewise.
2409 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Likewise.
2410 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c:
2411 Likewise.
2412 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c:
2413 Likewise.
2414 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c:
2415 Likewise.
2416 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c:
2417 Likewise.
2418 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c:
2419 Likewise.
2420 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c:
2421 Likewise.
2422 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c:
2423 Likewise.
2424 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c:
2425 Likewise.
2426 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
2427 Likewise.
2428 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
2429 Likewise.
2430 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c:
2431 Likewise.
2432 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c:
2433 Likewise.
2434 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Likewise.
2435 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c:
2436 Likewise.
2437 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Likewise.
2438 * testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c:
2439 Likewise.
2440 * testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Likewise.
2441 * testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
2442 Likewise.
2443 * testsuite/libgomp.oacc-c-c++-common/kernels-reduction-1.c:
2444 Likewise.
2445 * testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c:
2446 Likewise.
2447 * testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
2448 * testsuite/libgomp.oacc-fortran/kernels-loop-data-2.f95:
2449 Likewise.
2450 * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit-2.f95:
2451 Likewise.
2452 * testsuite/libgomp.oacc-fortran/kernels-loop-data-enter-exit.f95:
2453 Likewise.
2454 * testsuite/libgomp.oacc-fortran/kernels-loop-data-update.f95:
2455 Likewise.
2456 * testsuite/libgomp.oacc-fortran/kernels-loop-data.f95: Likewise.
2457 * testsuite/libgomp.oacc-fortran/kernels-loop.f95: Likewise.
2458 * testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
2459 Likewise.
2460 * testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90:
2461 Likewise.
2462
063265b9
JB
24632019-03-19 Julian Brown <julian@codesourcery.com>
2464
2465 * testsuite/libgomp.oacc-c-c++-common/lib-93.c: Adjust target selector.
2466
edb11b53
JB
24672018-09-05 Cesar Philippidis <cesar@codesourcery.com>
2468 Chung-Lin Tang <cltang@codesourcery.com>
2469
2470 * testsuite/libgomp.oacc-c-c++-common/privatize-reduction-1.c: New
2471 test.
2472 * testsuite/libgomp.oacc-c-c++-common/privatize-reduction-2.c: New
2473 test.
2474
008f2396
JB
24752018-09-20 Cesar Philippidis <cesar@codesourcery.com>
2476
2477 * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust test case
2478 to conform to the new behavior of the auto clause in OpenACC 2.5.
2479
bfe3562f
JB
24802018-12-22 Cesar Philippidis <cesar@codesourcery.com>
2481 Julian Brown <julian@codesourcery.com>
2482
2483 * oacc-parallel.c (GOACC_parallel_keyed): Handle
2484 GOMP_MAP_FIRSTPRIVATE_INT host addresses.
2485 * plugin/plugin-nvptx.c (nvptx_exec): Handle
2486 GOMP_MAP_FIRSTPRIVATE_INT host addresses.
2487 * testsuite/libgomp.oacc-c++/firstprivate-int.C: New test.
2488 * testsuite/libgomp.oacc-c-c++-common/firstprivate-int.c: New
2489 test.
2490 * testsuite/libgomp.oacc-fortran/firstprivate-int.f90: New test.
2491
241ee112
JB
24922018-08-28 Julian Brown <julian@codesourcery.com>
2493 Cesar Philippidis <cesar@codesourcery.com>
2494
2495 * testsuite/libgomp.oacc-c-c++-common/pr70828.c: New test.
2496 * testsuite/libgomp.oacc-fortran/implicit_copy.f90: New test.
2497 * testsuite/libgomp.oacc-fortran/pr70828.f90: New test.
2498 * testsuite/libgomp.oacc-fortran/pr70828-2.f90: New test.
2499 * testsuite/libgomp.oacc-fortran/pr70828-3.f90: New test.
2500 * testsuite/libgomp.oacc-fortran/pr70828-4.f90: New test.
2501 * testsuite/libgomp.oacc-fortran/pr70828-5.f90: New test.
2502 * testsuite/libgomp.oacc-fortran/pr70828-6.f90: New test.
2503
d9075a4c
JB
25042018-10-05 Nathan Sidwell <nathan@acm.org>
2505 Tom de Vries <tdevries@suse.de>
2506 Thomas Schwinge <thomas@codesourcery.com>
2507 Julian Brown <julian@codesourcery.com>
2508
2509 * testsuite/libgomp.oacc-c-c++-common/loop-default-compile.c: New.
2510 * testsuite/libgomp.oacc-c-c++-common/loop-warn-1.c: New.
2511 * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
2512
59e263c4
JB
25132018-10-22 James Norris <jnorris@codesourcery.com>
2514 Cesar Philippidis <cesar@codesourcery.com>
2515 Tom de Vries <tom@codesourcery.com>
2516
2517 * testsuite/libgomp.oacc-fortran/data-3.f90: Update parallel
2518 regions to denote variables copyied in via acc enter data as
2519 present.
2520 * testsuite/libgomp.oacc-c-c++-common/subr.h: Reimplement.
2521 * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Regenerated PTX.
2522 * testsuite/libgomp.oacc-c-c++-common/timer.h: Removed.
2523 * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Change async checks.
2524 * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
2525 * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Rework kernel i/f and
2526 change async checks.
2527 * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
2528 * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Rework kernel i/f and
2529 timing checks.
2530 * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
2531 * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
2532 * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
2533 * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
2534 * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
2535 * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
2536 * testsuite/libgomp.oacc-c-c++-common/lib-93.c: New test.
2537
d27d6c9e
JB
25382018-12-13 Cesar Philippidis <cesar@codesourcery.com>
2539 Nathan Sidwell <nathan@acm.org>
2540 Julian Brown <julian@codesourcery.com>
2541
2542 * testsuite/libgomp.oacc-c-c++-common/par-reduction-3.c: New test.
2543 * testsuite/libgomp.oacc-c-c++-common/reduction-cplx-flt-2.c: New test.
2544 * testsuite/libgomp.oacc-fortran/reduction-9.f90: New test.
2545
4c708e05
JB
25462018-06-29 Cesar Philippidis <cesar@codesourcery.com>
2547 James Norris <jnorris@codesourcery.com>
2548
2549 * oacc-parallel.c (GOACC_parallel_keyed): Handle Fortran deviceptr
2550 clause.
2551 (GOACC_data_start): Likewise.
2552 * testsuite/libgomp.oacc-fortran/deviceptr-1.f90: New test.
2553
30d29fbc
JB
25542019-02-12 Julian Brown <julian@codesourcery.com>
2555
2556 * oacc-cuda.c (acc_set_cuda_stream): Return 0 on error/invalid
2557 arguments.
2558 * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Handle unnumbered
2559 async stream being an alias for a numbered async stream.
2560 * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
2561
15d0f61a
CLT
25622020-04-19 Chung-Lin Tang <cltang@codesourcery.com>
2563
2564 PR other/76739
2565
2566 * libgomp_g.h (GOACC_data_start): Add variadic '...' to declaration.
2567 * libgomp.h (gomp_map_vars_openacc): New function declaration.
2568 * oacc-int.h (struct goacc_ncarray_dim): New struct declaration.
2569 (struct goacc_ncarray_descr_type): Likewise.
2570 (struct goacc_ncarray): Likewise.
2571 (struct goacc_ncarray_info): Likewise.
2572 (goacc_noncontig_array_create_ptrblock): New function declaration.
2573 * oacc-parallel.c (goacc_noncontig_array_count_rows): New function.
2574 (goacc_noncontig_array_compute_sizes): Likewise.
2575 (goacc_noncontig_array_fill_rows_1): Likewise.
2576 (goacc_noncontig_array_fill_rows): Likewise.
2577 (goacc_process_noncontiguous_arrays): Likewise.
2578 (goacc_noncontig_array_create_ptrblock): Likewise.
2579 (GOACC_parallel_keyed): Use goacc_process_noncontiguous_arrays to
2580 handle non-contiguous array descriptors at end of varargs, adjust
2581 to use gomp_map_vars_openacc.
2582 (GOACC_data_start): Likewise. Adjust function type to accept varargs.
2583 * target.c (gomp_map_vars_internal): Add struct goacc_ncarray_info *
2584 nca_info parameter, add handling code for non-contiguous arrays.
2585 (gomp_map_vars_openacc): Add new function for specialization of
2586 gomp_map_vars_internal for OpenACC structured region usage.
2587 * testsuite/libgomp.oacc-c-c++-common/noncontig_array-1.c: New test.
2588 * testsuite/libgomp.oacc-c-c++-common/noncontig_array-2.c: New test.
2589 * testsuite/libgomp.oacc-c-c++-common/noncontig_array-3.c: New test.
2590 * testsuite/libgomp.oacc-c-c++-common/noncontig_array-4.c: New test.
2591 * testsuite/libgomp.oacc-c-c++-common/noncontig_array-utils.h: Support
2592 header for new tests.
2593