Fallout from looking at the additional definition document: I noticed that "nec" was missing from GCC's vendor trait selector list.
That's only a minor issue as only effect is that for unknown vendors, a warning is printed: "unknown property ‘nec’ of ‘vendor’ selector" Still, it makes sense to support all vendors and not only a subset. The current list (and the 5.0 and 5.1 lists) are available under https://www.openmp.org/specifications/ All of them include NEC ("nec") but not the original internal list (see some history digging in the attached commit). Committed asr15-6373-ga104766914e98d Tobias
commit a104766914e98ded9b991f1dac9ad22e815a3acc Author: Tobias Burnus <tbur...@baylibre.com> Date: Thu Dec 19 17:27:41 2024 +0100 OpenMP: Add 'nec' as to the 'vendor' context-selector list For unknown vendors using in a context selector such as match(implementation={vendor(...)}) GCC prints a warning like: warning: unknown property 'nec' of 'vendor' selector While all known vendors (including the vendor 'unknown') are silently accepted, only "gnu" counts as matched by GCC. The list of known vendors is published in OpenMP's additional definition document (or, previously, the context definitions document). While the initial list did not contain 'nec', it was added quite early but GCC missed this addition, which this commit rectifies. Some history: * GCC added the list in r10-3744-g94e7f906ca5c73 (Oct 2019) * At spec level, 'pgi' was replaced by 'nvidia' in Nov 2019, but GCC (since r10-4639-gd0ec7c935f0c96, Nov 2019) and LLVM recognize both vendor names. * 'nec' was then added in Dec 2019 and is present in "Context Definitions for the OpenMP API Specification Version 5.0 – Version 1.0", but only this commit adds it. * 'hpe' (as alias for 'cray') was added to the spec in Nov 2020 but to GCC only in r14-6720-gd0603dfe9d3bc7 (Dec 2023). gcc/ * omp-general.cc (vendor_properties): Add "nec". --- gcc/omp-general.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/omp-general.cc b/gcc/omp-general.cc index 9837ca021f0..78c38a6d715 100644 --- a/gcc/omp-general.cc +++ b/gcc/omp-general.cc @@ -1163,7 +1163,7 @@ static const char *const kind_properties[] = { "host", "nohost", "cpu", "gpu", "fpga", "any", NULL }; static const char *const vendor_properties[] = { "amd", "arm", "bsc", "cray", "fujitsu", "gnu", "hpe", "ibm", "intel", - "llvm", "nvidia", "pgi", "ti", "unknown", NULL }; + "llvm", "nec", "nvidia", "pgi", "ti", "unknown", NULL }; static const char *const extension_properties[] = { NULL }; static const char *const atomic_default_mem_order_properties[] =