yaxunl added a comment.

In https://reviews.llvm.org/D23086#515443, @Anastasia wrote:

> In https://reviews.llvm.org/D23086#514279, @yaxunl wrote:
>
> > How about we decide if a type is ndrange_t type based on their canonical 
> > types. If the canonical type of type X is the same as the canonical type of 
> > ndrange_t type, then type X is treated as ndrange_t type. Is this 
> > reasonable?
>
>
> I am not sure I understand entirely what you mean?
>
> Following the earlier suggestion from David, I think we can just create a 
> struct type internally and then typedef it to ndrange_t, we can use 
> buildImplicitRecord and addImplicitTypedef methods I believe. The latter one 
> has already been used for other OpenCL types.
>
> We will have to switch to string comparisons to identify this type in 
> SemaChecking.cpp and CGBuiltins.cpp for handling the enqueue_kernel call.


This was not the approach we agreed upon.

The approach we agreed upon was

In https://reviews.llvm.org/D23086#507215, @majnemer wrote:

> In https://reviews.llvm.org/D23086#507203, @yaxunl wrote:
>
> > How about assuming ndrange_t is a struct type defined by user and identify 
> > it by struct type name in Clang? This gives user freedom of implementing it 
> > differently than SPIR. In opencl-c.h define it as a struct type as SPIR 
> > required.
>
>
> That sounds fine to me.


The issue of your approach is that vendors lose the freedom to define ndrange_t 
the way they like.


Repository:
  rL LLVM

https://reviews.llvm.org/D23086



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to