[cfe-dev] [Mesa-dev] 3 element vectors in opencl 1.1+

Francisco Jerez currojerez at riseup.net
Wed Apr 23 10:49:01 PDT 2014


Jan Vesely <jan.vesely at rutgers.edu> writes:

> On Tue, 2014-04-22 at 17:50 -0700, Matt Arsenault wrote:
> <snip>
>
>> >> I think this is what v96:128 is for
>> > according to [0], it specifies only alignment, not size. I could not
>> > find an __attribute__ that would change size either.
>> >
>> > It should be possible to have ADMGPUDataLayout: public DataLayout class
>> > that would intercept the call and fix the reported value, but I think it
>> > would only move the hack to different place.
>> >
>> > I have added pocl-devel list as suggested.
>> >
>> > regards,
>> > Jan
>> >
>> > [0]http://llvm.org/docs/LangRef.html#data-layout
>> >
>> 
>> Only the size in memory matters, which is what the required alignment 
>> specifies. DataLayout::getTypeAllocSize accounts for the alignment, but 
>> getTypeStoreSize does not. I actually thought this was half of what 
>> getTypeStoreSize was for, but it turns out it isn't.
>
> hm, I always thought that alignment only puts restrictions on starting
> address and using padding was just a tool to do the job.
>
> anyway, thanks for the hint, using getTypeAllocSize works nicely.
> since we are allocating space in the argument vector I think
> getAllocSize is the right function to use.
>
> I'll post a patch.
>

I don't think that using getTypeAllocSize() instead of
getTypeStoreSize() to calculate clover::argument::size would be a
satisfactory solution.  By doing that you'd redefine the API argument
size exposed to the host for *all* argument types to be the
device-dependent aligned size, which is definitely not what you want.

AFAIK 3-element vectors are an exception because they are the only types
that are defined to have a different API size from their actual usable
size, so they probably deserve special handling in invocation.cpp (as
you did in your first patch).  As the API size is target-independent I
don't think that the fix belongs in Clang or LLVM, Clover is likely at
fault.

Thanks.

> regards,
> Jan
>
>
> -- 
> Jan Vesely <jan.vesely at rutgers.edu>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 229 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140423/bde30063/attachment.sig>


More information about the cfe-dev mailing list