<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/clang/test/SemaOpenCL, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2020-02-12T12:45:17+00:00</updated>
<entry>
<title>[OpenCL] Restrict addr space conversions in nested pointers</title>
<updated>2020-02-12T12:45:17+00:00</updated>
<author>
<name>Anastasia Stulova</name>
<email>anastasia.stulova@arm.com</email>
</author>
<published>2020-02-06T11:56:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b33830aea54536f0f03334b2015b03af336ec90c'/>
<id>urn:sha1:b33830aea54536f0f03334b2015b03af336ec90c</id>
<content type='text'>
Address space conversion changes pointer representation.
This commit disallows such conversions when they are not
legal i.e. for the nested pointers even with compatible
address spaces. Because the address space conversion in
the nested levels can't be generated to modify the pointers
correctly. The behavior implemented is as follows:

- Any implicit conversions of nested pointers with different
  address spaces is rejected.
- Any conversion of address spaces in nested pointers in safe
  casts (e.g. const_cast or static_cast) is rejected.
- Conversion in low level C-style or reinterpret_cast is accepted
  but with a warning (this aligns with OpenCL C behavior).

Fixes PR39674

Differential Revision: https://reviews.llvm.org/D73360

(cherry picked from commit 6064f426a18304e16b51cc79e74c9c2d55ef5a9c)
</content>
</entry>
<entry>
<title>CWG2352: Allow qualification conversions during reference binding.</title>
<updated>2020-01-10T02:24:06+00:00</updated>
<author>
<name>Richard Smith</name>
<email>richard@metafoo.co.uk</email>
</author>
<published>2020-01-09T23:31:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f041e9ad706aee7987c5299427c33424fcabbd0d'/>
<id>urn:sha1:f041e9ad706aee7987c5299427c33424fcabbd0d</id>
<content type='text'>
The language wording change forgot to update overload resolution to rank
implicit conversion sequences based on qualification conversions in
reference bindings. The anticipated resolution for that oversight is
implemented here -- we order candidates based on qualification
conversion, not only on top-level cv-qualifiers, including ranking
reference bindings against non-reference bindings if they differ in
non-top-level qualification conversions.

For OpenCL/C++, this allows reference binding between pointers with
differing (nested) address spaces. This makes the behavior of reference
binding consistent with that of implicit pointer conversions, as is the
purpose of this change, but that pre-existing behavior for pointer
conversions is itself probably not correct. In any case, it's now
consistently the same behavior and implemented in only one place.

This reinstates commit de21704ba96fa80d3e9402f12c6505917a3885f4,
reverted in commit d8018233d1ea4234de68d5b4593abd773db79484, with
workarounds for some overload resolution ordering problems introduced by
CWG2352.
</content>
</entry>
<entry>
<title>Revert "CWG2352: Allow qualification conversions during reference binding."</title>
<updated>2019-12-27T20:27:20+00:00</updated>
<author>
<name>David Blaikie</name>
<email>dblaikie@gmail.com</email>
</author>
<published>2019-12-27T20:17:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=d8018233d1ea4234de68d5b4593abd773db79484'/>
<id>urn:sha1:d8018233d1ea4234de68d5b4593abd773db79484</id>
<content type='text'>
This reverts commit de21704ba96fa80d3e9402f12c6505917a3885f4.

Regressed/causes this to error due to ambiguity:

  void f(const int * const &amp;);
  void f(int *);
  int main() {
    int * x;
    f(x);
  }

(in case it's important - the original case where this turned up was a
member function overload in a class template with, essentially:

  f(const T1&amp;)
  f(T2*)

(where T1 == X const *, T2 == X))

It's not super clear to me if this ^ is expected behavior, in which case
I'm sorry about the revert &amp; happy to look into ways to fix the original
code.
</content>
</entry>
<entry>
<title>[OpenCL] Fixed printing of __private in AMDGPU test</title>
<updated>2019-12-27T17:08:42+00:00</updated>
<author>
<name>Anastasia Stulova</name>
<email>anastasia.stulova@arm.com</email>
</author>
<published>2019-12-27T17:07:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=752220ea2664c814eb1eb046d755fe63ade9c32e'/>
<id>urn:sha1:752220ea2664c814eb1eb046d755fe63ade9c32e</id>
<content type='text'>
Tags: #clang
</content>
</entry>
<entry>
<title>[OpenCL] Fix inconsistency between opencl and c11 atomic fetch max/min</title>
<updated>2019-12-27T16:29:04+00:00</updated>
<author>
<name>Yaxun (Sam) Liu</name>
<email>yaxun.liu@amd.com</email>
</author>
<published>2019-12-19T20:27:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=134ef0fb4b92718477a1dc9da0118f9b2dd77237'/>
<id>urn:sha1:134ef0fb4b92718477a1dc9da0118f9b2dd77237</id>
<content type='text'>
There is some inconsistency between opencl and c11 atomic fetch max/min after

https://reviews.llvm.org/D46386

https://reviews.llvm.org/D55562

It is not reasonable to have such inconsistencies. This patch fixes that.

Differential Revision: https://reviews.llvm.org/D71725
</content>
</entry>
<entry>
<title>[OpenCL] Pretty print __private addr space</title>
<updated>2019-12-27T13:42:07+00:00</updated>
<author>
<name>Anastasia Stulova</name>
<email>anastasia.stulova@arm.com</email>
</author>
<published>2019-12-27T13:38:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=869d17d851ba08fc35ade3d1077b4986de401e89'/>
<id>urn:sha1:869d17d851ba08fc35ade3d1077b4986de401e89</id>
<content type='text'>
Add printing of __private address space to TypePrinter to allow
it appears in diagnostics and AST dumps as all other language
addr spaces.

Tags: #clang

Differential Revision: https://reviews.llvm.org/D71272
</content>
</entry>
<entry>
<title>[OpenCL] Add atomic builtin functions</title>
<updated>2019-12-23T12:29:01+00:00</updated>
<author>
<name>Sven van Haastregt</name>
<email>sven.vanhaastregt@arm.com</email>
</author>
<published>2019-12-23T12:29:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b714583fd09683458be9eb03a9faef656a8ccf49'/>
<id>urn:sha1:b714583fd09683458be9eb03a9faef656a8ccf49</id>
<content type='text'>
Add atomic builtin functions from the OpenCL C specification.

Patch by Pierre Gondois and Sven van Haastregt.
</content>
</entry>
<entry>
<title>CWG2352: Allow qualification conversions during reference binding.</title>
<updated>2019-12-20T02:37:55+00:00</updated>
<author>
<name>Richard Smith</name>
<email>richard@metafoo.co.uk</email>
</author>
<published>2019-12-19T19:15:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=de21704ba96fa80d3e9402f12c6505917a3885f4'/>
<id>urn:sha1:de21704ba96fa80d3e9402f12c6505917a3885f4</id>
<content type='text'>
The language wording change forgot to update overload resolution to rank
implicit conversion sequences based on qualification conversions in
reference bindings. The anticipated resolution for that oversight is
implemented here -- we order candidates based on qualification
conversion, not only on top-level cv-qualifiers.

For OpenCL/C++, this allows reference binding between pointers with
differing (nested) address spaces. This makes the behavior of reference
binding consistent with that of implicit pointer conversions, as is the
purpose of this change, but that pre-existing behavior for pointer
conversions is itself probably not correct. In any case, it's now
consistently the same behavior and implemented in only one place.
</content>
</entry>
<entry>
<title>[OpenCL] Add builtin function extension handling</title>
<updated>2019-12-18T10:13:51+00:00</updated>
<author>
<name>Sven van Haastregt</name>
<email>sven.vanhaastregt@arm.com</email>
</author>
<published>2019-12-18T10:13:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=308b8b76ceee805c964faf9f2176e3e05532a45b'/>
<id>urn:sha1:308b8b76ceee805c964faf9f2176e3e05532a45b</id>
<content type='text'>
Provide a mechanism to attach OpenCL extension information to builtin
functions, so that their use can be restricted according to the
extension(s) the builtin is part of.

Patch by Pierre Gondois and Sven van Haastregt.

Differential Revision: https://reviews.llvm.org/D71476
</content>
</entry>
<entry>
<title>[Sema] Improve diagnostic about addr spaces for overload candidates</title>
<updated>2019-12-13T12:35:18+00:00</updated>
<author>
<name>Anastasia Stulova</name>
<email>anastasia.stulova@arm.com</email>
</author>
<published>2019-12-13T12:30:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=ed8dadb37c7e1a7f4889d868ac9b19bfe7762237'/>
<id>urn:sha1:ed8dadb37c7e1a7f4889d868ac9b19bfe7762237</id>
<content type='text'>
Allow sending address spaces into diagnostics to simplify and improve
error reporting. Improved wording of diagnostics for address spaces
in overloading.

Tags: #clang

Differential Revision: https://reviews.llvm.org/D71111
</content>
</entry>
</feed>
