User Details
- User Since
- Dec 18 2017, 12:01 AM (173 w, 5 d)
Feb 15 2021
Jan 19 2021
Jan 18 2021
Jun 17 2020
Rebased.
Jun 16 2020
Seems that test/OpenMP/nvptx_target_codegen.cpp is completely not formatted. If I apply suggestion from pre-merge checks, this will look like a big unrelated to this patch change and it will contradict with the whole file style.
Generalized diagnostic between SYCL and OpenMP.
Jun 11 2020
Fixed code style.
@jdoerfert , @ABataev , if OpenMP needs same diagnostic as well, I can generalize it between SYCL and OpenMP.
May 29 2020
I don't have rights to merge. Could someone submit it, please?
Fix is here D80829 .
May 28 2020
Included test cases from Johannes.
Applied comments from Johannes.
Fixed failing tests.
May 26 2020
The tests are failing because calling function with unsupported type in arguments/return value is diagnosed as well, i.e. :
double math(float f, double d, long double ld) { ... } // `ld` is not used inside the `math` function #pragma omp target map(r) { r += math(f, d, ld); } // error: 'math' requires 128 bit size 'long double' type support, but device 'nvptx64-nvidia-cuda' does not support it
Should we diagnose calls to such functions even if those arguments/return value aren't used?
May 25 2020
Re-implemented diagnostic itself, now only usages of declarations
with unsupported types are diagnosed.
Generalized approach between OpenMP and SYCL.
May 8 2020
May 6 2020
Ping.
Apr 20 2020
Okay, seems like OpenMP needs unsupported types diagnosing as well. I'm trying to adapt this patch for OpenMP, but it doesn't work out of the box because it diagnoses memcpy like operations, so with the current patch the code like this will cause diagnostics:
struct T { char a; __float128 f; char c; T() : a(12), f(15) {} }
Apr 14 2020
Apr 13 2020
Apr 9 2020
Apr 8 2020
Apr 7 2020
Apr 6 2020
Mar 31 2020
Apply comments, rebase.
Mar 30 2020
Rebased to fresh version. Applied fixes after https://reviews.llvm.org/D70172
Mar 27 2020
Ping.
Mar 23 2020
Fix the test by adding the target with __float128 support and make sure that
no diagnostic are emitted.
Mar 20 2020
Added diagnosing of __float128 type usage.
See the summary of revision for details.
Feb 27 2020
@rjmccall, Thank you very much for so detailed response, It really helps. I started working on implementation and I have a couple of questions/problems with this particular appoach.
Feb 17 2020
Feb 13 2020
I haven't considered something like this, because I'm not familiar with ObjC at all... I will give it a try, thanks.
Feb 11 2020
Jan 21 2020
Thank you for this!
Dec 13 2019
Dec 10 2019
Updated tests using address space attributes added by D71005
Dec 4 2019
Dec 2 2019
LGTM with a couple of minor comments.
Nov 30 2019
A couple of minor comments.
Jun 27 2019
Minor fix
Added warning diagnostic for sycl_kernel attribute.
Jun 24 2019
Jun 20 2019
Fixed a couple coding style issues, renamed markDevice function with markSYCLDevice.
Updated sycl_kernel attribute documentation.
Jun 19 2019
Appled part of comments from @aaron.ballman:
- Fixed grammar and code style in all places except sycl_kernel docs
- Added a lit test which checks that sycl_device attribute implicitly added to proper declarations
Jun 18 2019
Ping.
Jun 11 2019
@aaron.ballman , please let me know if you have additional comments/suggestions. If not, could you please accept this revision?
Jun 10 2019
Applied comments from @Anastasia
Jun 3 2019
May 31 2019
May 30 2019
May 28 2019
Applied comments from @Anastasia
- Added documentation for sycl_kernel function
- Added comments to Sema.h
- Added -std=c++11 to test run lines
May 23 2019
May 22 2019
Minor fix.
May 21 2019
Added semantics for new attributes
Apr 19 2019
I tried to reuse OpenCL kernel attribute with "__kernel" keyword in our current SYCL implementation. PR with this try is here - https://github.com/intel/llvm/pull/97
Now It looks feasible but with a couple notes:
From SYCL specification "SYCL is designed to be as close to standard C++ as possible. Standard C++ compiler can compile the SYCL programs and they will run correctly on host CPU." So SYCL doesn't provide non-standard kernel keyword which is provided by OpenCL. Due this fact it's not possible to add kernel keyword as in OpenCL, it will prevent compilation of following valid SYCL code: