<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/test/SemaOpenACC/loop-construct-reduction-clause.cpp, branch users/mingmingl-llvm/samplefdo-profile-format</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[OpenACC] Make 'reduction' on a complex ill-formed</title>
<updated>2025-09-02T22:42:19+00:00</updated>
<author>
<name>erichkeane</name>
<email>ekeane@nvidia.com</email>
</author>
<published>2025-09-02T22:37:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7a0dfb1fec20bcb8565b39507e282b12e436ba1f'/>
<id>7a0dfb1fec20bcb8565b39507e282b12e436ba1f</id>
<content type='text'>
The standard provides for scalar variables, though is silent as to
whether complex is a scalar variable.  However, during review, we found
that it is completely nonsensical to do any of the reduction operations on
complex (or to initialize some), so this patch makes it ill-formed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The standard provides for scalar variables, though is silent as to
whether complex is a scalar variable.  However, during review, we found
that it is completely nonsensical to do any of the reduction operations on
complex (or to initialize some), so this patch makes it ill-formed.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenACC] Fixup rules for reduction clause variable refererence type</title>
<updated>2025-08-20T14:55:16+00:00</updated>
<author>
<name>erichkeane</name>
<email>ekeane@nvidia.com</email>
</author>
<published>2025-08-19T18:57:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=30fcf6984546ac7e14de63921792f9df3a124d09'/>
<id>30fcf6984546ac7e14de63921792f9df3a124d09</id>
<content type='text'>
The standard is ambiguous, but we can only support
arrays/array-sections/etc of the composite type, so make sure we enforce
the rule that way. This will better support  how we need to do lowering.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The standard is ambiguous, but we can only support
arrays/array-sections/etc of the composite type, so make sure we enforce
the rule that way. This will better support  how we need to do lowering.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenACC] Fix Sema 'reduction' to allow arrays</title>
<updated>2025-07-25T17:26:10+00:00</updated>
<author>
<name>erichkeane</name>
<email>ekeane@nvidia.com</email>
</author>
<published>2025-07-25T17:10:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6cbcfb9a7cb79658c315732b1d7d86ce8a52bc45'/>
<id>6cbcfb9a7cb79658c315732b1d7d86ce8a52bc45</id>
<content type='text'>
Due to a mis-reading of the OpenACC spec, we weren't accepting arrays as
a valid value to a reduction variable.  This patch corrects that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Due to a mis-reading of the OpenACC spec, we weren't accepting arrays as
a valid value to a reduction variable.  This patch corrects that.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenACC] Fixup previous-clause diagnostics</title>
<updated>2025-05-02T16:35:32+00:00</updated>
<author>
<name>erichkeane</name>
<email>ekeane@nvidia.com</email>
</author>
<published>2025-05-02T14:07:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8313d2a8dbc5e23741d7c67c3b009fc3f6de4875'/>
<id>8313d2a8dbc5e23741d7c67c3b009fc3f6de4875</id>
<content type='text'>
Brought up in a previous review as a TODO, we could be better about how
we highlight what hte previous clause was, and how to show that the
'device_type' is the one being targetted.  This patch rewords the
diagnostics and updates a massive number of tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Brought up in a previous review as a TODO, we could be better about how
we highlight what hte previous clause was, and how to show that the
'device_type' is the one being targetted.  This patch rewords the
diagnostics and updates a massive number of tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenACC] Implement `loop` restrictions on `for` loops. (#115370)</title>
<updated>2024-11-08T13:49:45+00:00</updated>
<author>
<name>Erich Keane</name>
<email>ekeane@nvidia.com</email>
</author>
<published>2024-11-08T13:49:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b0cfbfd74bfd9d077f7c1854a1b38dcbe9d402e4'/>
<id>b0cfbfd74bfd9d077f7c1854a1b38dcbe9d402e4</id>
<content type='text'>
OpenACC restricts the contents of a 'for' loop affected by a 'loop'
construct without a 'seq'. The loop variable must be integer, pointer,
or random-access-iterator, it must monotonically increase/decrease, and
the trip count must be computable at runtime before the function.

This patch tries to implement some of these limitations to the best of
our ability, though it causes us to be perhaps overly restrictive at the
moment. I expect we'll revisit some of these rules/add additional
supported forms of loop-variable and 'monotonically increasing' here,
but the currently enforced rules are heavily inspired by the OMP
implementation here.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OpenACC restricts the contents of a 'for' loop affected by a 'loop'
construct without a 'seq'. The loop variable must be integer, pointer,
or random-access-iterator, it must monotonically increase/decrease, and
the trip count must be computable at runtime before the function.

This patch tries to implement some of these limitations to the best of
our ability, though it causes us to be perhaps overly restrictive at the
moment. I expect we'll revisit some of these rules/add additional
supported forms of loop-variable and 'monotonically increasing' here,
but the currently enforced rules are heavily inspired by the OMP
implementation here.</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenACC] Implement 'reduction' Sema on 'loop' construct</title>
<updated>2024-11-01T15:52:15+00:00</updated>
<author>
<name>erichkeane</name>
<email>ekeane@nvidia.com</email>
</author>
<published>2024-10-07T19:55:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0b0b15309435df19a93fefbc556c57a83da0d3f6'/>
<id>0b0b15309435df19a93fefbc556c57a83da0d3f6</id>
<content type='text'>
The reduction clause has some minor restrictions on the variable
references that are implementable, so this implements those.  Others
require reachability analysis, so this patch documents that we're not
going to do that in the CFE(or at least save it for the MLIR passes).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The reduction clause has some minor restrictions on the variable
references that are implementable, so this implements those.  Others
require reachability analysis, so this patch documents that we're not
going to do that in the CFE(or at least save it for the MLIR passes).
</pre>
</div>
</content>
</entry>
</feed>
