64 Commits

Author SHA1 Message Date
Aaron Ballman
de59f56440 [OpenMP] Support OpenMP 5.1 attributes
OpenMP 5.1 added support for writing OpenMP directives using [[]]
syntax in addition to using #pragma and this introduces support for the
new syntax.

In OpenMP, the attributes take one of two forms:
[[omp::directive(...)]] or [[omp::sequence(...)]]. A directive
attribute contains an OpenMP directive clause that is identical to the
analogous #pragma syntax. A sequence attribute can contain either
sequence or directive arguments and is used to ensure that the
attributes are processed sequentially for situations where the order of
the attributes matter (remember:
https://eel.is/c++draft/dcl.attr.grammar#4.sentence-4).

The approach taken here is somewhat novel and deserves mention. We
could refactor much of the OpenMP parsing logic to work for either
pragma annotation tokens or for attribute clauses. It would be a fair
amount of effort to share the logic for both, but it's certainly
doable. However, the semantic attribute system is not designed to
handle the arbitrarily complex arguments that OpenMP directives
contain. Adding support to thread the novel parsed information until we
can produce a semantic attribute would be considerably more effort.
What's more, existing OpenMP constructs are not (often) represented as
semantic attributes. So doing this through Attr.td would be a massive
undertaking that would likely only benefit OpenMP and comes with
additional risks. Rather than walk down that path, I am taking
advantage of the fact that the syntax of the directives within the
directive clause is identical to that of the #pragma form. Once the
parser recognizes that we're processing an OpenMP attribute, it caches
all of the directive argument tokens and then replays them as though
the user wrote a pragma. This reuses the same OpenMP parsing and
semantic logic directly, but does come with a risk if the OpenMP
committee decides to purposefully diverge their pragma and attribute
syntaxes. So, despite this being a novel approach that does token
replay, I think it's actually a better approach than trying to do this
through the declarative syntax in Attr.td.
2021-07-12 06:51:19 -04:00
cchen
924cdff0ae [OpenMP5][DOCS] Update status of masked construct and correct the color
for omp_target_is_present, NFC.
2021-04-15 17:19:04 -05:00
Shilei Tian
2a95cb5858 [Clang][Docs] Claim the atomic compare
I'm working on the implementation of OpenMP 5.1 feature `atomic compare`.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D100507
2021-04-15 11:10:15 -04:00
cchen
3d816537df [OpenMP51][DOCS] Claimed masked construct and report current patch, NFC. 2021-04-09 15:21:13 -05:00
Mike Rice
2165c0d389 [OPENMP][DOCS]Update status of the supported constructs, NFC. 2021-04-02 12:31:36 -07:00
cchen
56b39afb58 [OpenMP51][DOCS] Mark "add present modifier in defaultmap clause" as
done, NFC.
2021-04-01 11:02:23 -05:00
Michael Kruse
4b15b2df23 [clang][OpenMP][docs] Update loop transformation status.
Mark tiling as done and unrolling as being worked on.
2021-03-05 17:26:55 -06:00
Johannes Doerfert
6e7101530d [OpenMP][Docs] Mark finished features as done
Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D94185
2021-01-07 14:39:18 -06:00
cchen
1b8ed1d03d [OpenMP51][DOCS] Claim "add present modifier in defaultmap clause", NFC. 2020-12-01 16:07:00 -06:00
cchen
77e98eaee2 [OpenMP50][DOCS] Mark target data non-contiguous as done, NFC. 2020-11-24 16:07:39 -06:00
dreachem
7046be1730 [OpenMP] [DOCS] Update OMP5.1 feature status table [NFC]
Adding features in OpenMP 5.1 specification, as documented in feature change history, to the 5.1 table. I alphabetized the rows of the table according to the category. For deprecating master construct, I just used 'other' as the category.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D90802
2020-11-18 10:46:42 -06:00
Joel E. Denny
03bb545b68 [OpenMP][Docs] Mark present map type modifier as done 2020-08-05 10:03:31 -04:00
Joel E. Denny
26cf9c1704 [OpenMP][Docs] Add map clause reordering status as unclaimed 2020-08-05 10:03:31 -04:00
Michael Kruse
18eba165e7 [OpenMP][docs] Update loop tiling status. 2020-07-31 13:01:55 -05:00
Joel E. Denny
3d06fc0049 [OpenMP][Docs] Mark present motion modifier as done 2020-07-30 12:21:37 -04:00
Johannes Doerfert
7db017bf34 [OpenMP][Docs] Update Clang Support docs after D75591 2020-07-29 10:21:05 -05:00
Joel E. Denny
f250eb37cd [OpenMP][Docs] Update present modifier status 2020-07-27 19:23:55 -04:00
Joel E. Denny
d6e79e3dd6 [OpenMP][Docs] Update present map type modifier status 2020-07-15 11:17:00 -04:00
Joel E. Denny
3fa666b883 [OpenMP][Docs] Mark TR8 present as claimed in docs 2020-06-24 14:21:11 -04:00
Alexey Bataev
264f0dbef8 [OPENMP][DOCS]Update status of supported constructs, NFC. 2020-06-23 08:53:58 -04:00
Alexey Bataev
eed45b5fa2 [OPENMP][DOCS]Update status of supported constructs, NFC. 2020-06-18 13:29:33 -04:00
Alexey Bataev
993c43aea5 [OPENMP][DOCS]Update status of the supported constrcuts, NFC. 2020-06-16 12:25:08 -04:00
Alexey Bataev
c8a869c5e0 [OPENMP][DOCS]Update status of implemented features, NFC. 2020-05-20 10:54:53 -04:00
Alexey Bataev
e0ae907ab5 [OPENMP][DOCS]Update status of oimplemented constructs, NFC. 2020-04-07 15:45:08 -04:00
Alexey Bataev
39ada46889 [OPENMP][DOCS]Mark array shaping as done, NFC. 2020-03-31 19:12:52 -04:00
Florian Hahn
684ee2057f [clang/docs] Fix various sphinx warnings/errors in docs.
There are a few places with unexpected indents that trip over sphinx and
other syntax errors.

Also, the C++ syntax highlighting does not work for
    class [[gsl::Owner(int)]] IntOwner {

Use a regular code:: block instead.

There are a few other warnings errors remaining, of the form
'Duplicate explicit target name: "cmdoption-clang--prefix"'. They seem
to be caused by the following
  .. option:: -B<dir>, --prefix <arg>, --prefix=<arg>

I am no Restructured Text expert, but it seems like sphinx 1.8.5
tries to generate the same target for the --prefix <arg> and
--prefix=<arg>. This pops up in a lot of places and I am not sure how to
best resolve it

Reviewers: jfb, Bigcheese, dexonsmith, rjmccall

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D76534
2020-03-21 16:06:33 +00:00
Alexey Bataev
cf1f8f9bec [OPENMP][DOCS]Update list of constructs and status, NFC. 2020-03-19 10:20:29 -04:00
Alexey Bataev
0d7c8c07d2 [OPENMP][DOCS]Mark depobj as implemented, NFC. 2020-03-11 13:26:01 -04:00
Johannes Doerfert
5313abdbca [OpenMP][NFC] Update OpenMPSupport table 2020-02-15 00:40:39 -06:00
Alexey Bataev
7ecf066e65 [OPENMP][DOCS]Fix misprint, NFC. 2020-02-13 15:43:05 -05:00
Alexey Bataev
3eb1b59ec0 [OPENMP50][DOCS]Claim iterators and add reference to array shaping
patch, NFC.
2020-02-13 15:05:19 -05:00
Alexey Bataev
3203e1bc2e [OPENMP50][DOCS]Update list of supported constructs, NFC. 2020-02-13 15:02:59 -05:00
Alexey Bataev
43b98ffed0 [OPENMP][DOCS]Update status of support constructs, NFC. 2020-02-13 12:28:17 -05:00
Alexey Bataev
569dc65c63 [OPNEMP50][DOCS]Mark array shaping expression as claimed, NFC. 2020-02-05 10:02:39 -05:00
Kelvin Li
ac43033631 [OpenMP] [DOCS] Update OMP5.0 feature status table [NFC]
Differential Revision: https://reviews.llvm.org/D72901
2020-02-03 18:30:36 -05:00
Alexey Bataev
6c3252e521 [OPENMP][DOCS]Update status of conditional lastprivate, NFC. 2020-02-03 12:43:40 -05:00
Alexey Bataev
3cb934c94e [OPENMP][DOCS]Update status of OpenMP 5.0 features, NFC. 2019-12-24 12:39:59 -05:00
Alexey Bataev
06a6b0ad65 [OPENMP][DOCS]Claim simd nontemporal clause, NFC. 2019-12-16 13:38:58 -05:00
Alexey Bataev
ec3854e58a [OPENMP][DOCS]Mark if clause on simd done, NFC. 2019-12-16 13:25:58 -05:00
Michael Kruse
2a789dd0ad [OpenMP][Docs] Claim loop tiling. 2019-12-13 18:42:52 -06:00
Johannes Doerfert
bdaf31ec95 [OpenMP][Docs] Mark 5.0 features worked on and list 5.1 features 2019-12-12 00:00:38 -06:00
Alexey Bataev
c3279beded [OPENMP][DOCS]Update list of the supported features, NFC. 2019-12-05 10:44:37 -05:00
Alexey Bataev
975a435127 [OPENMP]Update list of implemented features, NFC. 2019-12-04 15:11:19 -05:00
Kelvin Li
0c7a1c0cfc [OPENMP] [DOCS] correct status for use_device_addr clause
The status of the use_device_addr clause feature is changed from 'done' to 'worked on`.

Differential Revision: https://reviews.llvm.org/D70608
2019-11-22 15:32:40 -05:00
Alexey Bataev
bcf754a321 [OPENMP][DOCS] Update OpenMP status (NFC)
Summary: This is updating the OpenMP status table. Cray has volunteered for `defaultmap` and supporting `in_reduction` on the `target` construct, so the status on those entries from was changed from "unclaimed". Also, a new entry was added for supporting non-contiguous arrays sections on the `target update` directive.

Reviewers: ABataev, hfinkel, jdoerfert, kkwli0

Reviewed By: ABataev

Subscribers: guansong, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D69923
2019-11-07 11:07:56 -05:00
Kelvin Li
9f10cc2d12 [OPENMP] [DOCS] fix section formatting issues [NFC]
Differential Revision: https://reviews.llvm.org/D69909
2019-11-06 22:03:09 -05:00
Alexey Bataev
642916adc9 [OPENMP][DOCS]Fix coloring of the implemented features status, NFC. 2019-11-05 10:13:58 -05:00
Alexey Bataev
3eecd601ed [OPENMP][DOCS]Update list of implemented features, NFC. 2019-11-04 16:29:26 -05:00
Alexey Bataev
37c8baf821 [OPENMP][DOC]Provide correct info about supported features, NFC.
Removed the explicit list of supported features from OpenMP 5.0 and used
the reference to the table instead. Also, fixed info about constructs
that can be executed in SPMD mode, if and num_threads clauses do not
affect it anymore.
2019-10-30 10:38:11 -04:00
Alexey Bataev
8aa74414bf [OPENMP][DOC]Update list of supported functions, NFC.
Added support for parallel master taskloop simd construct.
2019-10-30 10:33:04 -04:00