Revision tags: llvmorg-21-init, llvmorg-19.1.7, 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 ...
|
#
009b5e8e |
| 06-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] 'vector' clause implementation for combined constructs
Similar to 'worker', the 'vector' clause has some rules that needed to be applied on its argument legality that for combined construc
[OpenACC] 'vector' clause implementation for combined constructs
Similar to 'worker', the 'vector' clause has some rules that needed to be applied on its argument legality that for combined constructs need to look at the current construct, not the 'effective' parent construct. Additionally, it has some interaction with `vector_length` that needed to be encoded as well. This patch implements it.
show more ...
|
#
cb6a02ab |
| 05-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement 'worker' clause for combined constructs
This is very similar to 'gang', except with fewer restrictions, and only an interaction with 'num_workers', plus disallowing 'gang' and 'w
[OpenACC] Implement 'worker' clause for combined constructs
This is very similar to 'gang', except with fewer restrictions, and only an interaction with 'num_workers', plus disallowing 'gang' and 'worker' in its associated statement. This patch implements this, the same as how 'gang' implemented it.
show more ...
|
#
3a4b9f38 |
| 04-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement 'gang' clause for Combined Constructs
This one is a bit complicated, as it has some interesting interactions, as 'gang' Sema is required to look at its containing compute constru
[OpenACC] Implement 'gang' clause for Combined Constructs
This one is a bit complicated, as it has some interesting interactions, as 'gang' Sema is required to look at its containing compute construct. Except in the case of a combined construct, they are the same. This resulted in a large refactor of the checking code for CheckGangExpr, plus some additional work on the diagnostics for its interaction with 'num_gangs' and 'vector'/'worker'.
show more ...
|
#
eb257fe3 |
| 03-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Enable 3 more clauses for combined constructs.
'num_gangs', 'num_workers', and 'vector_length' are similar to eachother, and are all the same implementation as for compute constructs, so t
[OpenACC] Enable 3 more clauses for combined constructs.
'num_gangs', 'num_workers', and 'vector_length' are similar to eachother, and are all the same implementation as for compute constructs, so this patch just enables them and adds the necessary testing to ensure they work correctly. These will get more complicated when they get combined with 'gang', 'worker', 'vector' and 'reduction', but those restrictions will be implemented when those clauses are enabled.
show more ...
|
Revision tags: llvmorg-19.1.5 |
|
#
0aa78927 |
| 02-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement 'tile' for combined constructs
Like collapse, this clause has only mild changes that need to be made. Most of the associated work for the RAII container was already done previous
[OpenACC] Implement 'tile' for combined constructs
Like collapse, this clause has only mild changes that need to be made. Most of the associated work for the RAII container was already done previously, so this is mostly just updating the diagnostics to properly emit the right construct.
show more ...
|
#
0aef005c |
| 02-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement 'collapse' for combined constructs.
Most of the restrictions on 'collapse' involve the contents of the loop, so this extends enforcement of all of that to all combined construct
[OpenACC] Implement 'collapse' for combined constructs.
Most of the restrictions on 'collapse' involve the contents of the loop, so this extends enforcement of all of that to all combined construct loops, and alters the diagnostics to better reflect the construct it is associated with.
show more ...
|
#
1f2aeef9 |
| 02-Dec-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Enable copy/create clauses for combined constructs
This is the last set of 'no op' changes, and are all incredibly similar, so they are being done together. They work the exact same for c
[OpenACC] Enable copy/create clauses for combined constructs
This is the last set of 'no op' changes, and are all incredibly similar, so they are being done together. They work the exact same for combined constructs as they do for compute constructs, so this adds tests and enables them.
show more ...
|
#
8c1bd979 |
| 27-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Expose 'no_create' clause in combined constructs
Once again, not much work besides ensuring they are supposed to work the same.
|
#
bbbaeb55 |
| 27-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Enable 'attach' clause for combined constructs
Once again, this clause has the same implementation for compute constructs as combined, so this adds the tests and enables it.
|
#
969b7658 |
| 27-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Enable 'wait' for combined constructs
Once again a situation where the combined and compute do the exact same thing as far as Sema/AST/etc is concerned, so this patch adds tests and enable
[OpenACC] Enable 'wait' for combined constructs
Once again a situation where the combined and compute do the exact same thing as far as Sema/AST/etc is concerned, so this patch adds tests and enables it.
show more ...
|
#
8d6c73cb |
| 27-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] enable 'deviceptr' for combined constructs.
This is another clause whose implementation is identical for combined constructs as with compute constructs, so this adds tests and enables it.
|
#
78c70246 |
| 26-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement 'present' for combined constructs.
This is another clause where the parsing does all the required enforcement besides the construct it appertains to, so this patch removes the re
[OpenACC] Implement 'present' for combined constructs.
This is another clause where the parsing does all the required enforcement besides the construct it appertains to, so this patch removes the restriction and adds sufficient test coverage for combined constructs.
show more ...
|
Revision tags: llvmorg-19.1.4 |
|
#
1b44c3a1 |
| 14-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] enable 'async' clause for combined constructs
No additional work required over what we did for other constructs, so this is just adding the tests and enabling the clauses.
|
#
1cd981a5 |
| 14-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement private/firstprivate for combined constructs
This is another pair of clauses where the work is already done from previous constructs, so this just has to allow them and include t
[OpenACC] Implement private/firstprivate for combined constructs
This is another pair of clauses where the work is already done from previous constructs, so this just has to allow them and include tests for them. This patch adds testing, does a few little cleanup bits on the clause checking, and enables these.
show more ...
|
#
b7f7e645 |
| 13-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Implement 'default' clause for Combined Constructs
This clause takes one of two fixed values, and can apply to all three of the combined constructs. Tests/etc are all exactly like the comp
[OpenACC] Implement 'default' clause for Combined Constructs
This clause takes one of two fixed values, and can apply to all three of the combined constructs. Tests/etc are all exactly like the compute constructs, so committing them all here.
show more ...
|
#
95fa5f39 |
| 13-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Fix ast-print test that failed due to copy/paste error
|
#
fa20b5d3 |
| 13-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] 'if' and 'self' clause implementation for Combined Constructs
These two are identical to how they work for compute constructs, so this patch enables them and ensures there is sufficient te
[OpenACC] 'if' and 'self' clause implementation for Combined Constructs
These two are identical to how they work for compute constructs, so this patch enables them and ensures there is sufficient testing.
show more ...
|
#
6b2de10c |
| 13-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] implement 'device_type' for combined constructs
This clause is pretty small/doesn't do much semantic-analysis-wise, , other than have two spellings and disallow certain clauses after it. H
[OpenACC] implement 'device_type' for combined constructs
This clause is pretty small/doesn't do much semantic-analysis-wise, , other than have two spellings and disallow certain clauses after it. However, as most of those aren't implemented yet, the diagnostic is left as a TODO.
show more ...
|
#
3169a38d |
| 13-Nov-2024 |
erichkeane <ekeane@nvidia.com> |
[OpenACC] Add ast-print test for combined constructs
|