summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling/Syntax/Tokens.cpp
diff options
context:
space:
mode:
authorMariya Podchishchaeva <mariya.podchishchaeva@intel.com>2019-11-06 17:35:50 +0300
committerAlexey Bader <alexey.bader@intel.com>2019-12-03 16:13:22 +0300
commitc094e7dc4b3f9d1c1e590b008bb1cc46e3496abd (patch)
treeffa52d6f408d70fad8e4e1985c57a1195641c5b6 /clang/lib/Tooling/Syntax/Tokens.cpp
parent0e9b0b6d11e882efec8505d97c4b65e1562e6715 (diff)
downloadbcm5719-llvm-c094e7dc4b3f9d1c1e590b008bb1cc46e3496abd.tar.gz
bcm5719-llvm-c094e7dc4b3f9d1c1e590b008bb1cc46e3496abd.zip
[SYCL] Add sycl_kernel attribute for accelerated code outlining
SYCL is single source offload programming model relying on compiler to separate device code (i.e. offloaded to an accelerator) from the code executed on the host. Here is code example of the SYCL program to demonstrate compiler outlining work: ``` int foo(int x) { return ++x; } int bar(int x) { throw std::exception("CPU code only!"); } ... using namespace cl::sycl; queue Q; buffer<int, 1> a(range<1>{1024}); Q.submit([&](handler& cgh) { auto A = a.get_access<access::mode::write>(cgh); cgh.parallel_for<init_a>(range<1>{1024}, [=](id<1> index) { A[index] = index[0] + foo(42); }); } ... ``` SYCL device compiler must compile lambda expression passed to cl::sycl::handler::parallel_for method and function foo called from this lambda expression for an "accelerator". SYCL device compiler also must ignore bar function as it's not required for offloaded code execution. This patch adds the sycl_kernel attribute, which is used to mark code passed to cl::sycl::handler::parallel_for as "accelerated code". Attribute must be applied to function templates which parameters include at least "kernel name" and "kernel function object". These parameters will be used to establish an ABI between the host application and offloaded part. Reviewers: jlebar, keryell, Naghasan, ABataev, Anastasia, bader, aaron.ballman, rjmccall, rsmith Reviewed By: keryell, bader Subscribers: mgorny, OlegM, ArturGainullin, agozillon, aaron.ballman, ebevhan, Anastasia, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D60455 Signed-off-by: Alexey Bader <alexey.bader@intel.com>
Diffstat (limited to 'clang/lib/Tooling/Syntax/Tokens.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud