[Mesa-stable] [Mesa-dev] [PATCH 1/2] clover: assert struct argument is compiled usably
Vedran Miletić
vedran at miletic.net
Sun Jun 5 23:02:24 UTC 2016
On 06/04/2016 04:18 AM, Francisco Jerez wrote:
> Serge Martin <edb+mesa at sigluy.net> writes:
>
>> From: Vedran Miletić <vedran at miletic.net>
>>
>> Make sure that a struct argument did not get compiled into a pointer
>> type with the byval attribute. If we try to handle the pointer with
>> byval, we end up with the pointer size instead of the struct size.
>>
> Ugh, is that a bug in the code below? How are byval pointers supposed
> to be handled here? Exactly as if the argument wasn't a pointer at all
> by providing a copy of the pointed-to object as-is in the kernel input
> buffer? In that case wouldn't the code below need to pass the correct
> size of the pointed-to object as target/api size rather than the size of
> the pointer?
>
Yes, byval+pointer should be handled as there is no pointer at all.
I have tried passing the correct size, but IIRC LLVM AMDGPU backend does
not generate correct asm for byval+pointer variant. The simple solution
is to fail with an assert here unless Clang generates code both Clover
and the backend can handle.
Regards,
Vedran
--
Vedran Miletić
vedran.miletic.net
More information about the mesa-stable
mailing list