Revision tags: llvmorg-21-init, llvmorg-19.1.7 |
|
#
4bbdb018 |
| 19-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement 'init' and 'shutdown' constructs
These two constructs are very simple and similar, and only support 3 different clauses, two of which are already implemented. This patch adds AS
[OpenACC] Implement 'init' and 'shutdown' constructs
These two constructs are very simple and similar, and only support 3 different clauses, two of which are already implemented. This patch adds AST nodes for both constructs, and leaves the device_num clause unimplemented, but enables the other two.
show more ...
|
Revision tags: llvmorg-19.1.6 |
|
#
7d89ebfd |
| 06-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement 'reduction' for combined constructs.
Once again, this is a clause on a combined construct that does almost exactly what the loop/compute construct version does, only with some sl
[OpenACC] Implement 'reduction' for combined constructs.
Once again, this is a clause on a combined construct that does almost exactly what the loop/compute construct version does, only with some sl ightly different evaluation rules/sema rules as it doesn't have to consider the parent, just the 'combined' construct. The two sets of rules for reduction on loop and compute are fine together, so this ensures they are all enforced for this too.
The 'gangs' 'num_gangs' 'reduction' diagnostic (Dim>1) had to be applied to num_gangs as well, as it previously wasn't permissible to get in this situation, but we now can.
show more ...
|
Revision tags: llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7 |
|
#
6119340e |
| 31-May-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Audit/add tests to ensure we enforce appertainment correctly
I apparently missed a few other clauses as well when doing my initial implementation, so this adds tests for all, and fixes up
[OpenACC] Audit/add tests to ensure we enforce appertainment correctly
I apparently missed a few other clauses as well when doing my initial implementation, so this adds tests for all, and fixes up the few that had problems.
This is something that I'll do better to keep an eye on, though shouldn't be necessary once the rest of the clauses are implemented and we can remove the 'default' case.
show more ...
|
#
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 ...
|