erichkeane
99a9133a68
[OpenACC] Implement Sema/AST for 'atomic' construct
...
The atomic construct is a particularly complicated one. The directive
itself is pretty simple, it has 5 options for the 'atomic-clause'.
However, the associated statement is fairly complicated.
'read' accepts:
v = x;
'write' accepts:
x = expr;
'update' (or no clause) accepts:
x++;
x--;
++x;
--x;
x binop= expr;
x = x binop expr;
x = expr binop x;
'capture' accepts either a compound statement, or:
v = x++;
v = x--;
v = ++x;
v = --x;
v = x binop= expr;
v = x = x binop expr;
v = x = expr binop x;
IF 'capture' has a compound statement, it accepts:
{v = x; x binop= expr; }
{x binop= expr; v = x; }
{v = x; x = x binop expr; }
{v = x; x = expr binop x; }
{x = x binop expr ;v = x; }
{x = expr binop x; v = x; }
{v = x; x = expr; }
{v = x; x++; }
{v = x; ++x; }
{x++; v = x; }
{++x; v = x; }
{v = x; x--; }
{v = x; --x; }
{x--; v = x; }
{--x; v = x; }
While these are all quite complicated, there is a significant amount
of similarity between the 'capture' and 'update' lists, so this patch
reuses a lot of the same functions.
This patch implements the entirety of 'atomic', creating a new Sema file
for the sema for it, as it is fairly sizable.
2025-02-03 07:22:22 -08:00
..
2025-02-03 07:22:22 -08:00
2025-02-03 07:22:22 -08:00
2024-11-12 09:26:25 -08:00
2024-11-14 11:18:06 -08:00
2024-12-19 12:21:50 -08:00
2024-11-27 09:55:19 -08:00
2024-11-27 09:55:19 -08:00
2024-11-27 09:55:19 -08:00
2024-11-13 06:54:25 -08:00
2025-01-09 09:28:58 -08:00
2024-12-02 12:49:49 -08:00
2024-12-16 11:52:57 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-02 11:15:35 -08:00
2024-12-12 12:54:02 -08:00
2024-12-18 15:06:01 -08:00
2024-12-02 11:15:35 -08:00
2024-11-13 09:57:40 -08:00
2025-01-09 09:28:58 -08:00
2024-11-13 09:57:40 -08:00
2024-11-27 07:04:15 -08:00
2024-11-27 07:04:15 -08:00
2024-11-27 07:04:15 -08:00
2024-11-14 09:57:39 -08:00
2024-11-14 09:57:39 -08:00
2024-12-05 10:43:52 -08:00
2024-12-05 06:35:36 -08:00
2024-11-13 12:42:53 -08:00
2024-12-16 11:52:57 -08:00
2024-11-13 12:42:53 -08:00
2024-11-27 12:03:48 -08:00
2024-11-27 12:03:48 -08:00
2024-11-27 12:03:48 -08:00
2024-12-03 09:31:40 -08:00
2024-12-03 09:31:40 -08:00
2024-12-03 09:31:40 -08:00
2024-12-03 09:31:40 -08:00
2024-11-26 10:49:41 -08:00
2024-11-26 10:49:41 -08:00
2024-11-26 10:49:41 -08:00
2024-11-14 09:57:39 -08:00
2024-11-14 09:57:39 -08:00
2024-11-14 09:57:39 -08:00
2024-12-09 14:06:44 -08:00
2024-12-09 14:06:44 -08:00
2025-01-08 13:19:33 -08:00
2024-11-13 12:42:53 -08:00
2024-11-13 12:42:53 -08:00
2024-12-02 13:31:36 -08:00
2024-12-02 13:31:36 -08:00
2024-12-03 09:31:40 -08:00
2024-12-03 09:31:40 -08:00
2024-12-06 09:06:57 -08:00
2024-12-06 09:06:57 -08:00
2024-11-27 09:55:19 -08:00
2024-11-27 09:55:19 -08:00
2024-12-19 12:21:50 -08:00
2024-12-05 10:43:52 -08:00
2024-12-05 10:43:52 -08:00
2024-11-13 09:57:40 -08:00
2024-11-12 09:26:25 -08:00
2024-11-08 05:49:45 -08:00
2024-12-19 12:21:50 -08:00
2024-11-08 05:49:45 -08:00
2025-01-08 13:19:33 -08:00
2024-11-08 05:49:45 -08:00
2024-05-21 06:51:25 -07:00
2024-11-08 05:49:45 -08:00
2024-05-21 06:51:25 -07:00
2024-11-08 05:49:45 -08:00
2024-05-21 06:51:25 -07:00
2024-11-08 05:49:45 -08:00
2024-05-21 06:51:25 -07:00
2024-12-18 15:06:01 -08:00
2024-06-05 10:17:21 -07:00
2025-01-09 09:28:58 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 05:49:45 -08:00
2024-11-14 07:18:38 -08:00
2024-12-16 11:52:57 -08:00
2024-09-20 11:08:38 -07:00
2024-11-08 05:49:45 -08:00
2024-05-21 06:51:25 -07:00
2024-11-08 05:49:45 -08:00
2024-12-19 12:21:50 -08:00
2024-11-08 05:49:45 -08:00
2024-12-19 12:21:50 -08:00
2024-11-08 05:49:45 -08:00
2024-05-21 06:51:25 -07:00
2024-12-19 12:21:50 -08:00
2024-05-21 06:51:25 -07:00
2024-12-19 12:21:50 -08:00
2024-12-09 14:06:44 -08:00
2024-11-08 05:49:45 -08:00
2024-11-26 07:35:17 -08:00
2024-11-08 05:49:45 -08:00
2024-12-19 12:21:50 -08:00
2024-11-08 05:49:45 -08:00
2024-12-19 12:21:50 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 11:52:57 -08:00
2024-12-16 09:35:57 -08:00
2024-12-13 09:24:20 -08:00
2024-12-16 09:35:57 -08:00
2024-12-13 06:23:05 -08:00
2024-12-16 11:52:57 -08:00
2024-12-13 07:31:18 -08:00
2024-12-16 11:52:57 -08:00
2024-12-13 07:50:29 -08:00
2024-12-16 11:52:57 -08:00
2024-12-13 06:55:05 -08:00
2024-12-16 11:52:57 -08:00
2024-12-12 12:54:02 -08:00
2024-12-16 11:52:57 -08:00
2024-12-16 06:44:53 -08:00
2024-12-16 11:52:57 -08:00
2024-12-13 13:51:41 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 11:52:57 -08:00
2024-12-16 11:52:57 -08:00
2024-12-13 08:38:55 -08:00
2024-12-16 09:35:57 -08:00
2024-12-13 10:41:02 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 09:35:57 -08:00
2024-12-13 08:11:28 -08:00
2024-12-16 11:52:57 -08:00
2024-12-13 08:11:28 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 11:52:57 -08:00
2024-12-13 07:50:29 -08:00
2024-12-16 09:35:57 -08:00
2024-12-16 11:52:57 -08:00
2024-12-19 12:21:51 -08:00
2024-12-19 12:21:51 -08:00
2024-11-08 10:23:04 -08:00
2024-11-08 05:49:45 -08:00
2025-01-09 09:28:58 -08:00
2024-11-08 05:49:45 -08:00
2024-12-16 11:52:57 -08:00
2024-11-08 05:49:45 -08:00
2025-01-09 09:28:58 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 10:23:04 -08:00
2024-12-05 06:35:36 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 10:23:04 -08:00
2024-12-06 09:06:57 -08:00
2024-11-08 10:23:04 -08:00
2024-12-04 10:34:50 -08:00
2024-11-13 09:57:40 -08:00
2024-11-08 05:49:45 -08:00
2024-11-08 05:49:45 -08:00
2024-11-12 09:26:25 -08:00
2024-11-12 09:26:25 -08:00
2024-05-28 14:55:18 -04:00
2025-01-06 11:03:18 -08:00
2025-01-06 11:03:18 -08:00
2024-12-19 12:21:51 -08:00
2024-12-19 12:21:51 -08:00
2024-05-29 15:23:44 -03:00
2025-01-06 11:03:18 -08:00
2025-01-09 09:28:58 -08:00
2025-01-09 09:28:58 -08:00
2024-12-18 15:06:01 -08:00
2024-12-19 12:21:50 -08:00