Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7
# a15b685c 21-May-2024 Erich Keane <ekeane@nvidia.com>

[OpenACC] Implement 'reduction' sema for compute constructs (#92808)

'reduction' has a few restrictions over normal 'var-list' clauses:

1- On parallel, a num_gangs can only have 1 argument when c

[OpenACC] Implement 'reduction' sema for compute constructs (#92808)

'reduction' has a few restrictions over normal 'var-list' clauses:

1- On parallel, a num_gangs can only have 1 argument when combined with
reduction. These two aren't able to be combined on any other of the
compute constructs however.

2- The vars all must be 'numerical data types' types of some sort, or a
'composite of numerical data types'. A list of types is given in the
standard as a minimum, so we choose 'isScalar', which covers all of
these types and keeps types that are actually numeric. Other compilers
don't seem to implement the 'composite of numerical data types', though
we do.

3- Because of the above restrictions, member-of-composite is not
allowed, so any access via a memberexpr is disallowed. Array-element and
sub-arrays (aka array sections) are both permitted, so long as they meet
the requirements of #2.

This patch implements all of these for compute constructs.

show more ...


Revision tags: llvmorg-18.1.6
# bd909d2e 02-May-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] Implement no_create and present clauses on compute constructs

These two are, from a semantic checking perspective, identical to
first-private/private/etc, other than appertainment. This pa

[OpenACC] Implement no_create and present clauses on compute constructs

These two are, from a semantic checking perspective, identical to
first-private/private/etc, other than appertainment. This patch
implements both.

show more ...