[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