Jan Vesely <jan.ves...@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.ves...@rutgers.edu> > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
pgpPhkfcwcCIy.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev