[PATCH] D63710: [SYCL] Re-use OpenCL sampler in SYCL device mode

Anastasia Stulova via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 1 09:02:36 PDT 2019


Anastasia added a comment.

> For instance, OpenCL kernel in SYCL mode initializes lambda captures with
>  the kernel argument values. This initialization code for sampler emits
>  errors because OpenCL disallows sampler on the right hand side of the
>  binary operators - these are supposed to be used only by built-in
>  functions.

Confused - is this already implemented anywhere? Also how about regular use of samplers in binary operators?

> Another potential issue is the lambda object itself -
>  captured sampler is a member of the lambda object and OpenCL doesn't
>  allow composite types with samplers. SPIR-V produced from SYCL should be
>  okay as lambda object can be removed by standard LLVM transformation
>  passes.

Can you elaborate on this please.



================
Comment at: clang/lib/Sema/SemaType.cpp:4622
         if (FTI.isVariadic &&
+            !LangOpts.SYCLIsDevice &&
             !(D.getIdentifier() &&
----------------
Does this belong to sampler too?


================
Comment at: clang/test/SemaSYCL/ocl_sampler.cpp:3
+
+#define CLK_ADDRESS_CLAMP_TO_EDGE       2
+#define CLK_NORMALIZED_COORDS_TRUE      1
----------------
It would be nice not to replicate testing completely. Would it work to run relevant OpenCL tests in SYCL mode?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63710/new/

https://reviews.llvm.org/D63710





More information about the cfe-commits mailing list