Tom de Vries
e0451f93d9
[nvptx] Add some support for .local atomics
...
The ptx insn atom doesn't support local memory. In case of doing an atomic
operation on local memory, we run into:
...
operation not supported on global/shared address space
...
This is the cuGetErrorString message for CUDA_ERROR_INVALID_ADDRESS_SPACE.
The message is somewhat confusing given that actually the operation is not
supported on local address space.
Fix this by falling back on a non-atomic version when detecting
a frame-related memory operand.
This only solves some cases that are detected at compile-time. It does
however fix the openacc private-atomic-* test-cases.
Tested on x86_64 with nvptx accelerator.
gcc/ChangeLog:
2022-01-27 Tom de Vries <tdevries@suse.de>
* config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
(define_insn "atomic_exchange<mode>")
(define_insn "atomic_fetch_add<mode>")
(define_insn "atomic_fetch_addsf")
(define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
if memory operands is frame-relative.
gcc/testsuite/ChangeLog:
2022-01-31 Tom de Vries <tdevries@suse.de>
* gcc.target/nvptx/stack-atomics-run.c: New test.
libgomp/ChangeLog:
2022-01-27 Tom de Vries <tdevries@suse.de>
* testsuite/libgomp.oacc-c-c++-common/private-atomic-1.c: Remove
PR83812 workaround.
* testsuite/libgomp.oacc-fortran/private-atomic-1-vector.f90: Same.
* testsuite/libgomp.oacc-fortran/private-atomic-1-worker.f90: Same.
2022-02-01 19:28:24 +01:00
..
2019-12-09 23:52:47 +01:00
2019-12-09 23:52:47 +01:00
2019-12-09 23:52:47 +01:00
2019-12-09 23:52:47 +01:00
2019-12-09 23:52:56 +01:00
2019-12-09 23:52:56 +01:00
2020-01-29 11:55:06 +01:00
2020-04-29 09:24:07 +02:00
2020-01-29 11:55:06 +01:00
2021-05-27 22:44:36 +02:00
2020-01-29 11:55:06 +01:00
2019-12-11 17:48:59 +01:00
2019-12-11 17:48:59 +01:00
2019-12-11 17:48:59 +01:00
2019-12-11 17:48:59 +01:00
2019-12-11 17:48:59 +01:00
2019-12-11 17:48:59 +01:00
2021-06-08 11:28:53 +02:00
2019-05-17 21:13:36 +02:00
2021-07-27 11:16:25 +02:00
2020-07-14 10:31:35 -07:00
2022-01-19 08:27:00 +01:00
2021-07-27 11:16:25 +02:00
2019-05-17 21:13:36 +02:00
2019-05-17 21:13:36 +02:00
2018-12-14 21:42:08 +01:00
2019-12-09 23:52:36 +01:00
2019-12-09 23:52:36 +01:00
2019-12-09 23:52:36 +01:00
2021-06-08 11:23:31 +02:00
2021-07-27 11:16:27 +02:00
2021-07-27 11:16:37 +02:00
2021-05-27 22:44:36 +02:00
2020-04-29 09:24:07 +02:00
2018-04-29 10:26:56 +00:00
2020-09-08 13:26:42 -07:00
2021-04-30 11:08:03 +03:00
2018-04-05 08:36:37 +00:00
2022-02-01 08:15:00 +01:00
2020-11-25 19:57:39 +01:00
2019-12-11 17:49:27 +01:00
2021-04-11 14:44:22 +01:00
2021-04-11 14:44:22 +01:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2018-12-14 21:42:40 +01:00
2018-12-14 21:42:40 +01:00
2018-12-14 21:42:18 +01:00
2021-05-13 09:24:23 +02:00
2021-05-13 09:24:23 +02:00
2019-10-09 13:31:14 +02:00
2019-06-19 00:13:54 +02:00
2017-10-16 08:44:42 +00:00
2021-06-08 11:21:47 +02:00
2017-10-16 08:44:42 +00:00
2017-10-16 08:44:42 +00:00
2022-01-13 10:42:17 +01:00
2022-01-13 10:42:17 +01:00
2022-01-13 10:42:17 +01:00
2019-12-20 01:39:42 +00:00
2019-12-20 01:39:42 +00:00
2019-12-20 01:20:27 +00:00
2019-12-20 01:39:42 +00:00
2019-12-20 01:20:27 +00:00
2019-12-20 01:39:42 +00:00
2020-06-04 18:56:37 +02:00
2020-06-04 18:56:37 +02:00
2019-12-20 01:39:42 +00:00
2019-12-20 01:39:42 +00:00
2019-12-20 01:39:42 +00:00
2019-12-20 01:39:42 +00:00
2019-12-11 12:45:49 +01:00
2018-06-22 12:04:14 +02:00
2022-01-13 10:42:17 +01:00
2022-01-13 10:42:17 +01:00
2022-01-13 10:42:17 +01:00
2021-06-08 11:31:49 +02:00
2020-04-29 09:24:07 +02:00
2020-04-29 09:24:07 +02:00
2019-01-15 10:11:16 +00:00
2018-05-02 17:53:29 +00:00
2021-05-27 22:44:36 +02:00
2019-12-09 12:40:08 +01:00
2021-05-21 20:09:59 +02:00
2019-01-11 11:45:55 +00:00
2022-01-13 10:42:17 +01:00
2022-01-19 08:27:00 +01:00
2018-06-22 12:04:14 +02:00
2018-06-22 12:04:14 +02:00
2018-06-22 12:04:14 +02:00
2018-06-22 12:04:14 +02:00
2018-06-22 12:04:14 +02:00
2018-06-22 12:04:14 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2018-06-22 12:04:14 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2018-06-20 09:35:15 -07:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2018-06-20 09:35:15 -07:00
2018-06-20 09:35:15 -07:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-06-08 11:51:45 +02:00
2021-05-27 22:44:36 +02:00
2021-05-27 22:44:36 +02:00
2021-06-08 11:51:45 +02:00
2021-07-27 11:16:24 +02:00
2021-07-27 11:16:24 +02:00
2021-04-26 12:32:00 +02:00
2018-05-02 17:53:56 +00:00
2019-10-02 21:05:35 +02:00
2021-08-09 15:08:44 +02:00
2021-05-21 20:09:59 +02:00
2021-05-21 20:09:59 +02:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2021-05-21 20:09:59 +02:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2019-12-09 12:40:27 +01:00
2018-08-01 07:09:56 -07:00
2020-07-27 09:16:57 -07:00
2020-07-27 09:16:57 -07:00
2020-07-27 09:16:57 -07:00
2021-08-16 12:12:09 +02:00
2019-12-11 17:49:27 +01:00
2019-12-19 00:10:08 +01:00
2019-12-19 00:10:08 +01:00
2019-12-19 00:10:08 +01:00
2019-12-19 00:10:08 +01:00
2019-12-19 00:10:08 +01:00
2018-12-19 14:20:44 +00:00
2018-12-19 14:20:44 +00:00
2019-11-06 10:43:52 +00:00
2019-11-06 10:43:52 +00:00
2019-11-06 10:43:52 +00:00
2022-02-01 08:15:00 +01:00
2021-04-26 12:32:00 +02:00
2021-04-26 12:32:00 +02:00
2022-01-19 08:27:00 +01:00
2018-06-22 12:04:14 +02:00
2018-06-22 12:04:14 +02:00
2018-06-22 12:04:14 +02:00
2021-05-21 20:09:59 +02:00
2017-12-30 17:02:00 +00:00
2018-01-24 13:52:12 +00:00
2018-01-19 16:29:41 +00:00
2018-02-07 19:32:21 +00:00
2019-06-13 04:17:42 +00:00
2018-04-16 18:01:09 +00:00
2020-06-30 17:48:36 +02:00
2021-04-26 12:32:00 +02:00
2020-06-30 17:48:36 +02:00
2020-06-30 17:48:36 +02:00
2020-06-30 17:48:36 +02:00
2018-04-26 13:26:25 +00:00
2021-07-29 09:19:44 +02:00
2021-07-29 09:19:44 +02:00
2022-01-19 08:27:00 +01:00
2018-05-18 08:43:09 -07:00
2021-05-27 22:44:36 +02:00
2018-11-30 21:39:49 +01:00
2019-01-23 08:16:42 +00:00
2019-01-23 08:16:56 +00:00
2019-06-16 07:47:15 +00:00
2019-06-15 07:06:19 +00:00
2019-12-18 18:01:11 +01:00
2020-07-10 08:07:12 -07:00
2019-12-18 18:00:39 +01:00
2019-12-18 18:00:39 +01:00
2019-12-18 18:00:39 +01:00
2019-12-18 18:00:39 +01:00
2020-06-04 18:56:37 +02:00
2019-12-09 23:52:56 +01:00
2019-12-18 18:01:11 +01:00
2019-12-18 18:01:11 +01:00
2022-01-19 08:27:00 +01:00
2020-07-09 15:17:52 -07:00
2021-05-21 20:09:59 +02:00
2022-02-01 19:28:24 +01:00
2021-05-21 20:09:59 +02:00
2019-01-11 11:46:06 +00:00
2019-01-11 11:46:06 +00:00
2019-01-11 11:46:06 +00:00
2019-01-11 11:46:06 +00:00
2021-04-26 12:32:00 +02:00
2021-04-26 12:05:53 +02:00
2022-02-01 08:15:00 +01:00
2017-12-05 14:34:41 +01:00
2017-12-05 14:34:41 +01:00
2020-07-10 08:07:12 -07:00
2020-07-10 08:07:12 -07:00
2018-08-02 15:59:01 +00:00
2021-05-21 20:09:59 +02:00
2021-04-26 12:32:00 +02:00
2022-01-21 18:45:30 +01:00
2021-07-29 09:19:44 +02:00
2021-07-21 23:58:11 +02:00
2022-01-19 08:27:00 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2022-01-21 18:45:30 +01:00
2021-08-09 15:08:44 +02:00
2021-08-13 22:53:58 +02:00
2020-06-04 19:29:27 +02:00
2020-07-10 08:07:12 -07:00
2022-01-19 08:27:00 +01:00
2022-01-19 08:27:00 +01:00
2020-07-23 12:50:07 -07:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-07-10 08:07:12 -07:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2020-04-13 08:56:03 +02:00
2019-12-09 12:40:36 +01:00
2019-12-09 12:40:36 +01:00
2019-12-09 12:40:36 +01:00
2019-12-18 18:00:39 +01:00
2019-12-09 12:40:36 +01:00
2018-03-26 09:45:49 +00:00
2018-03-26 09:45:49 +00:00
2020-04-29 09:24:07 +02:00
2019-12-20 01:20:16 +00:00
2018-12-14 13:48:56 +00:00
2022-01-19 08:27:00 +01:00
2019-01-12 22:19:02 +00:00
2019-01-12 22:19:02 +00:00
2021-07-29 09:19:44 +02:00
2021-07-29 09:19:44 +02:00
2021-07-29 09:19:44 +02:00
2021-07-29 09:19:44 +02:00
2021-07-29 09:19:44 +02:00
2021-07-29 09:19:44 +02:00
2021-07-29 09:19:44 +02:00
2019-01-12 22:18:27 +00:00
2017-08-07 17:06:11 +00:00
2017-08-07 17:06:11 +00:00
2022-01-13 11:52:35 +01:00