Kajetan Puchalski
d3d96e2057
[flang][OpenMP] Add -f[no]-openmp-simd ( #150269 )
...
Both clang and gfortran support the -fopenmp-simd flag, which enables
OpenMP support only for simd constructs, while disabling the rest of
OpenMP.
Implement the appropriate parse tree rewriting to remove non-SIMD OpenMP
constructs at the parsing stage.
Add a new SimdOnly flang OpenMP IR pass which rewrites generated OpenMP
FIR to handle untangling composite simd constructs, and clean up OpenMP
operations leftover after the parse tree rewriting stage.
With this approach, the two parts of the logic required to make the flag
work can be self-contained within the parse tree rewriter and the MLIR
pass, respectively. It does not need to be implemented within the core
lowering logic itself.
The flag is expected to have no effect if -fopenmp is passed explicitly,
and is only expected to remove OpenMP constructs, not things like OpenMP
library functions calls. This matches the behaviour of other compilers.
---------
Signed-off-by: Kajetan Puchalski <kajetan.puchalski@arm.com>
2025-08-14 14:20:15 +01:00
..
2024-10-24 05:54:35 -05:00
2025-06-30 10:17:05 -07:00
2025-06-18 14:35:53 +01:00
2025-06-18 14:35:53 +01:00
2025-04-25 09:41:39 -05:00
2025-06-18 14:35:53 +01:00
2025-06-18 14:35:53 +01:00
2024-05-22 10:21:46 +01:00
2024-05-22 10:21:46 +01:00
2025-06-18 14:35:53 +01:00
2025-06-30 10:17:05 -07:00
2024-12-02 08:11:49 -06:00
2024-05-22 22:16:40 +01:00
2024-12-02 08:11:49 -06:00
2024-05-22 10:21:46 +01:00
2024-05-22 10:21:46 +01:00
2024-12-02 08:11:49 -06:00
2024-12-02 08:11:49 -06:00
2024-12-02 08:11:49 -06:00
2025-07-11 06:45:11 -05:00
2025-07-24 07:27:00 -05:00
2025-06-11 10:05:34 -05:00
2025-06-11 10:05:34 -05:00
2025-06-18 10:42:39 -05:00
2025-08-13 15:53:59 -05:00
2025-08-01 07:50:51 -05:00
2024-10-21 13:07:48 +05:30
2025-05-23 07:15:10 -05:00
2025-06-11 10:05:34 -05:00
2025-06-11 10:05:34 -05:00
2025-06-11 10:05:34 -05:00
2025-06-11 10:05:34 -05:00
2025-08-13 15:53:59 -05:00
2025-06-11 10:05:34 -05:00
2025-06-11 10:05:34 -05:00
2025-06-11 10:05:34 -05:00
2024-09-18 10:40:41 +01:00
2024-05-22 10:21:46 +01:00
2025-05-21 10:48:13 +01:00
2025-04-17 10:08:07 +01:00
2025-05-14 07:07:14 -05:00
2024-09-03 10:19:22 +01:00
2025-08-13 14:36:13 -07:00
2024-09-26 08:56:41 -05:00
2025-08-13 14:36:13 -07:00
2025-06-09 15:52:24 +01:00
2024-05-22 22:16:40 +01:00
2024-08-15 14:14:18 -03:00
2024-05-22 22:16:40 +01:00
2024-05-22 22:16:40 +01:00
2024-05-22 22:16:40 +01:00
2024-05-22 22:16:40 +01:00
2024-05-22 22:16:40 +01:00
2025-06-30 10:17:05 -07:00
2024-05-22 22:16:40 +01:00
2024-05-22 22:16:40 +01:00
2025-06-03 10:58:23 -03:00
2025-05-29 15:05:05 -05:00
2025-05-29 15:05:05 -05:00
2025-01-28 08:27:42 +05:30
2025-08-06 10:16:43 -05:00
2024-05-22 22:16:40 +01:00
2025-08-06 10:16:43 -05:00
2025-06-11 10:05:34 -05:00
2024-05-21 10:20:59 +01:00
2025-06-30 10:17:05 -07:00
2024-10-17 11:32:21 -03:00
2024-11-14 09:35:34 +00:00
2024-11-14 09:35:34 +00:00
2025-05-28 14:32:17 +01:00
2025-07-17 14:18:21 -04:00
2025-06-09 11:17:03 +01:00
2025-06-09 11:17:03 +01:00
2025-06-09 11:17:03 +01:00
2025-06-09 11:17:03 +01:00
2025-06-09 11:17:03 +01:00
2025-06-09 11:17:03 +01:00
2025-07-17 14:18:21 -04:00
2025-06-09 11:17:03 +01:00
2025-06-09 11:17:03 +01:00
2025-07-17 14:18:21 -04:00
2025-07-17 14:18:21 -04:00
2025-06-09 11:17:03 +01:00
2025-07-17 14:18:21 -04:00
2024-10-21 13:07:48 +05:30
2025-06-04 14:18:26 +01:00
2025-06-02 16:37:02 +01:00
2025-06-30 10:17:05 -07:00
2025-06-30 10:17:05 -07:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-06-30 10:17:05 -07:00
2024-05-21 10:20:59 +01:00
2025-01-21 16:05:12 +01:00
2025-06-09 15:52:24 +01:00
2025-04-02 15:16:33 -05:00
2025-05-07 09:56:45 +01:00
2024-05-21 10:20:59 +01:00
2025-06-03 10:58:23 -03:00
2025-04-08 13:22:05 +02:00
2024-09-09 14:09:45 -03:00
2024-11-25 07:38:12 -06:00
2024-11-18 07:04:10 -06:00
2025-03-21 10:58:44 +00:00
2024-05-21 10:20:59 +01:00
2024-10-28 16:06:22 -05:00
2024-12-02 15:22:05 -06:00
2024-11-11 08:48:51 -06:00
2025-06-13 14:16:58 +01:00
2025-03-20 06:50:43 -05:00
2024-11-11 08:48:51 -06:00
2024-11-11 08:48:51 -06:00
2025-06-30 10:17:05 -07:00
2025-05-09 10:55:54 +05:30
2025-05-09 10:55:54 +05:30
2024-05-21 10:20:59 +01:00
2025-08-13 14:36:13 -07:00
2025-07-11 07:28:54 -05:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2024-05-24 14:31:09 +01:00
2024-05-21 10:20:59 +01:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2025-07-17 14:18:21 -04:00
2024-11-15 09:10:36 -08:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-07-16 11:41:19 +01:00
2024-05-21 10:20:59 +01:00
2025-07-17 14:18:21 -04:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-06-03 10:58:23 -03:00
2024-12-04 12:03:37 +00:00
2024-05-21 10:20:59 +01:00
2024-10-18 10:12:50 +05:30
2025-06-18 14:02:11 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2024-11-11 10:10:16 -06:00
2025-01-20 15:46:11 -03:00
2025-03-12 11:45:15 +00:00
2025-01-03 09:21:36 -06:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-03-03 07:59:19 -06:00
2025-06-18 14:35:53 +01:00
2025-03-03 07:59:19 -06:00
2025-06-03 10:58:23 -03:00
2024-12-06 12:00:48 -06:00
2024-11-25 07:38:12 -06:00
2025-07-10 09:57:03 -05:00
2025-08-01 17:40:18 +01:00
2025-08-01 17:40:18 +01:00
2024-12-02 16:36:31 -06:00
2025-06-16 13:20:30 -03:00
2024-12-12 12:19:12 -06:00
2025-04-07 16:22:51 -03:00
2024-10-25 18:57:01 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-06-04 14:18:26 +01:00
2024-12-12 12:19:35 -06:00
2024-12-12 12:19:35 -06:00
2024-10-18 10:12:50 +05:30
2025-02-27 12:08:04 +01:00
2024-05-21 10:20:59 +01:00
2025-07-01 08:39:15 +01:00
2025-07-17 14:18:21 -04:00
2024-11-25 07:38:12 -06:00
2025-07-22 07:37:47 -05:00
2024-11-25 07:38:12 -06:00
2024-05-20 21:32:41 -07:00
2025-03-17 09:49:08 +00:00
2025-02-03 09:48:04 -06:00
2025-02-03 09:48:04 -06:00
2025-02-03 09:48:04 -06:00
2025-02-03 09:48:04 -06:00
2024-05-21 10:20:59 +01:00
2024-10-08 13:58:13 -05:00
2024-10-25 18:57:01 +01:00
2025-06-18 14:35:53 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-08-13 14:36:13 -07:00
2025-06-18 14:35:53 +01:00
2025-04-28 16:19:59 +01:00
2025-06-30 10:17:05 -07:00
2025-06-18 14:35:53 +01:00
2024-05-21 10:20:59 +01:00
2024-09-26 08:56:41 -05:00
2024-09-28 08:12:29 +05:30
2025-06-11 10:05:34 -05:00
2024-05-21 10:20:59 +01:00
2024-12-13 21:44:43 +09:00
2024-09-26 08:56:41 -05:00
2024-11-11 10:10:16 -06:00
2024-05-21 10:20:59 +01:00
2024-11-11 10:10:16 -06:00
2025-06-18 14:35:53 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-06-18 14:35:53 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-06-17 16:57:32 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-07-31 14:39:06 -03:00
2024-08-15 14:14:18 -03:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-10-04 10:46:31 +01:00
2024-09-17 11:21:06 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-12-06 12:00:48 -06:00
2024-05-21 10:20:59 +01:00
2024-12-06 12:00:48 -06:00
2024-05-21 10:20:59 +01:00
2025-07-17 14:18:21 -04:00
2025-07-17 14:18:21 -04:00
2024-05-21 10:20:59 +01:00
2025-07-17 14:18:21 -04:00
2024-12-06 12:00:48 -06:00
2024-06-05 11:26:34 +01:00
2024-06-13 10:04:22 +01:00
2024-12-06 12:00:48 -06:00
2024-12-06 12:00:48 -06:00
2025-08-13 16:59:17 +01:00
2025-02-06 10:44:16 +00:00
2024-11-15 09:10:36 -08:00
2024-10-02 10:21:14 +01:00
2024-05-21 10:20:59 +01:00
2025-05-13 15:37:26 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-06-30 10:17:05 -07:00
2025-06-30 10:17:05 -07:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-12-02 08:11:49 -06:00
2024-11-15 09:10:36 -08:00
2025-07-17 14:18:21 -04:00
2024-05-24 06:41:55 +01:00
2025-06-17 16:57:32 +01:00
2025-06-17 16:57:32 +01:00
2024-10-09 14:22:34 -05:00
2024-05-23 22:04:00 +01:00
2024-05-23 22:04:00 +01:00
2024-05-24 14:31:09 +01:00
2024-05-24 06:41:55 +01:00
2024-09-26 08:56:41 -05:00
2025-08-14 14:20:15 +01:00
2024-05-22 18:02:41 +01:00
2024-05-22 18:02:41 +01:00
2025-06-30 10:17:05 -07:00
2025-06-30 10:17:05 -07:00
2024-05-23 22:04:00 +01:00
2025-07-17 14:18:21 -04:00
2025-06-03 10:58:23 -03:00
2025-06-03 10:58:23 -03:00
2025-06-03 10:58:23 -03:00
2025-07-17 14:18:21 -04:00
2025-06-03 10:58:23 -03:00
2025-07-17 14:18:21 -04:00
2025-08-01 07:52:59 -05:00
2025-07-17 14:18:21 -04:00
2025-08-07 08:10:25 -05:00
2025-08-07 08:10:25 -05:00
2025-06-30 10:17:05 -07:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2024-05-21 10:20:59 +01:00
2025-06-05 12:00:29 +01:00
2024-12-12 12:19:12 -06:00
2025-01-21 09:10:25 +05:30
2024-12-12 12:19:12 -06:00
2024-05-24 06:41:55 +01:00
2024-05-24 06:41:55 +01:00
2024-05-24 14:31:09 +01:00
2024-05-21 10:20:59 +01:00
2024-05-24 06:41:55 +01:00
2025-03-17 12:35:37 +05:30
2025-03-17 12:35:37 +05:30
2024-05-22 18:02:41 +01:00
2025-02-20 08:17:29 -03:00
2025-07-17 14:18:21 -04:00
2025-03-07 09:24:32 +05:30
2024-05-22 18:02:41 +01:00
2024-05-22 18:02:41 +01:00
2024-05-22 18:02:41 +01:00
2024-10-21 13:07:48 +05:30
2025-04-08 13:22:05 +02:00
2024-12-06 12:00:48 -06:00
2024-11-25 07:38:12 -06:00
2024-12-06 12:00:48 -06:00
2024-09-26 08:56:41 -05:00
2025-06-30 10:17:05 -07:00
2024-05-24 06:41:55 +01:00
2024-05-23 22:04:00 +01:00
2024-10-18 10:11:59 +05:30
2024-05-23 22:04:00 +01:00
2024-05-23 22:04:00 +01:00
2024-05-23 22:04:00 +01:00