History log of /llvm-project/clang/test/AST/ast-print-openacc-compute-construct.cpp (Results 1 – 13 of 13)
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
# 03eba209 14-May-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] Fix ast-print of device_type clause

When writing the test for this I seemingly forgot to put 'CHECK' on the
lines, so I didn't notice that I was printing the identifiers as
pointers rather

[OpenACC] Fix ast-print of device_type clause

When writing the test for this I seemingly forgot to put 'CHECK' on the
lines, so I didn't notice that I was printing the identifiers as
pointers rather than their names. This patch corrects the tests and the
print behavior.

show more ...


# 8ef2011b 13-May-2024 erichkeane <ekeane@nvidia.com>

Reapply "[OpenACC] device_type clause Sema for Compute constructs"

device_type, also spelled as dtype, specifies the applicability of the
clauses following it, and takes a series of identifiers repr

Reapply "[OpenACC] device_type clause Sema for Compute constructs"

device_type, also spelled as dtype, specifies the applicability of the
clauses following it, and takes a series of identifiers representing the
architectures it applies to. As we don't have a source for the valid
architectures yet, this patch just accepts all.

Semantically, this also limits the list of clauses that can be applied
after the device_type, so this implements that as well.

This reverts commit 06f04b2e27f2586d3db2204ed4e54f8b78fea74e.
This reapplies commit c4a9a374749deb5f2a932a7d4ef9321be1b2ae5d.
The build failures were caused by the patch depending on the order of
evaluation of arguments to a function. This reapplication separates out
the capture of one of the values.

show more ...


# 06f04b2e 13-May-2024 erichkeane <ekeane@nvidia.com>

Revert "[OpenACC] device_type clause Sema for Compute constructs"

This reverts commit c4a9a374749deb5f2a932a7d4ef9321be1b2ae5d.

This and the followup patch keep hitting an assert I wrote on the bui

Revert "[OpenACC] device_type clause Sema for Compute constructs"

This reverts commit c4a9a374749deb5f2a932a7d4ef9321be1b2ae5d.

This and the followup patch keep hitting an assert I wrote on the build
bots in a way that isn't clear. Reverting so I can fix it without a
rush.

show more ...


# c4a9a374 09-May-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] device_type clause Sema for Compute constructs

device_type, also spelled as dtype, specifies the applicability of the
clauses following it, and takes a series of identifiers representing t

[OpenACC] device_type clause Sema for Compute constructs

device_type, also spelled as dtype, specifies the applicability of the
clauses following it, and takes a series of identifiers representing the
architectures it applies to. As we don't have a source for the valid
architectures yet, this patch just accepts all.

Semantically, this also limits the list of clauses that can be applied
after the device_type, so this implements that as well.

show more ...


# b1b46521 07-May-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] 'wait' clause for compute construct sema

'wait' takes a few int-exprs (well, a series of async-arguments, but
those are effectively just an int-expr), plus a pair of tags. This
patch a

[OpenACC] 'wait' clause for compute construct sema

'wait' takes a few int-exprs (well, a series of async-arguments, but
those are effectively just an int-expr), plus a pair of tags. This
patch adds the support for this to the AST, and does the appropriate
semantic analysis for them.

show more ...


# 30cfe2b2 06-May-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] Implement 'async' clause sema for compute constructs

This is a pretty simple clause, it takes an 'async-argument', which
effectively needs to be just parsed as an 'int' argument, since it

[OpenACC] Implement 'async' clause sema for compute constructs

This is a pretty simple clause, it takes an 'async-argument', which
effectively needs to be just parsed as an 'int' argument, since it can
be an arbitrarly integer at runtime (and negative values are legal for
implementation defined values).

This patch also cleans up the async-argument parsing, so 'wait' got some
minor quality-of-life improvements for parsing (both clause and
construct).

show more ...


# 48c8a579 03-May-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] Implement 'deviceptr' and 'attach' sema for compute constructs

These two are very similar to the other 'var-list' variants, except they
require that the type of the variable be a pointer.

[OpenACC] Implement 'deviceptr' and 'attach' sema for compute constructs

These two are very similar to the other 'var-list' variants, except they
require that the type of the variable be a pointer. This patch
implements that restriction.

show more ...


# 01e91a2d 02-May-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] Implement copyin, copyout, create clauses for compute construct

Like 'copy', these also have alternate names, so this implements that as
well. Additionally, these have an optional tag of

[OpenACC] Implement copyin, copyout, create clauses for compute construct

Like 'copy', these also have alternate names, so this implements that as
well. Additionally, these have an optional tag of either 'readonly' or
'zero' depending on the clause.

Otherwise, this is a pretty rote implementation of the clause, as there
aren't any special rules for it.

show more ...


# 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 ...


# a13c5140 02-May-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] Implement firstprivate clause for compute constructs

This clause is pretty nearly copy/paste from private, except that it
doesn't support 'loop', and thus 'kernelsloop' for appertainment.


Revision tags: llvmorg-18.1.5
# fa67986d 30-Apr-2024 Erich Keane <ekeane@nvidia.com>

[OpenACC] Private Clause on Compute Constructs (#90521)

The private clause is the first that takes a 'var-list', thus this has a
lot of additional work to enable the var-list type. A 'var' is a
tr

[OpenACC] Private Clause on Compute Constructs (#90521)

The private clause is the first that takes a 'var-list', thus this has a
lot of additional work to enable the var-list type. A 'var' is a
traditional variable reference, subscript, member-expression, or
array-section, so checking of these is pretty minor.

Note: This ran into some issues with array-sections (aka sub-arrays)
that will be fixed in a follow-up patch.

show more ...


# cc6113da 30-Apr-2024 erichkeane <ekeane@nvidia.com>

[OpenACC] Fix ast-print for OpenACC Clauses

Previously we weren't printing expressions correctly, so this patch adds
a test to ensure we do, and fixes how expressions are printed.