diff options
| author | Anastasia Stulova <anastasia.stulova@arm.com> | 2017-02-16 12:27:47 +0000 |
|---|---|---|
| committer | Anastasia Stulova <anastasia.stulova@arm.com> | 2017-02-16 12:27:47 +0000 |
| commit | 58984e7087bc530ac2fae06b3ef15a4f1bc118f9 (patch) | |
| tree | a11b867cfc2d17c70b6e9e73f7e97429791d848b /clang/lib/Sema | |
| parent | b1701e0b058113a0d1a9c624e480859b26f1345c (diff) | |
| download | bcm5719-llvm-58984e7087bc530ac2fae06b3ef15a4f1bc118f9.tar.gz bcm5719-llvm-58984e7087bc530ac2fae06b3ef15a4f1bc118f9.zip | |
[OpenCL] Correct ndrange_t implementation
Removed ndrange_t as Clang builtin type and added
as a struct type in the OpenCL header.
Use type name to do the Sema checking in enqueue_kernel
and modify IR generation accordingly.
Review: D28058
Patch by Dmitry Borisenkov!
llvm-svn: 295311
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/Sema.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 4 |
2 files changed, 2 insertions, 3 deletions
diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp index 412f944f89c..11d1bac5d3c 100644 --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -217,7 +217,6 @@ void Sema::Initialize() { if (getLangOpts().OpenCLVersion >= 200) { addImplicitTypedef("clk_event_t", Context.OCLClkEventTy); addImplicitTypedef("queue_t", Context.OCLQueueTy); - addImplicitTypedef("ndrange_t", Context.OCLNDRangeTy); addImplicitTypedef("reserve_id_t", Context.OCLReserveIDTy); addImplicitTypedef("atomic_int", Context.getAtomicType(Context.IntTy)); addImplicitTypedef("atomic_uint", diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 3aedb2a8c9b..463b73d0985 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -408,10 +408,10 @@ static bool SemaOpenCLBuiltinEnqueueKernel(Sema &S, CallExpr *TheCall) { } // Third argument is always an ndrange_t type. - if (!Arg2->getType()->isNDRangeT()) { + if (Arg2->getType().getAsString() != "ndrange_t") { S.Diag(TheCall->getArg(2)->getLocStart(), diag::err_opencl_enqueue_kernel_expected_type) - << S.Context.OCLNDRangeTy; + << "'ndrange_t'"; return true; } |

