<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [Clover / OpenCL] struct and union arguments handled incorrectly, producing CL_INVALID_ARG_SIZE"
href="https://bugs.freedesktop.org/show_bug.cgi?id=91556#c14">Comment # 14</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [Clover / OpenCL] struct and union arguments handled incorrectly, producing CL_INVALID_ARG_SIZE"
href="https://bugs.freedesktop.org/show_bug.cgi?id=91556">bug 91556</a>
from <span class="vcard"><a class="email" href="mailto:vedran@miletic.net" title="Vedran Miletić <vedran@miletic.net>"> <span class="fn">Vedran Miletić</span></a>
</span></b>
<pre>Should be fixed in LLLVM 4.0 with:
commit 5cb9343f53d83c9a8a33aac5b2ce01672ff02cf3
Author: Matt Arsenault <<a href="mailto:Matthew.Arsenault@amd.com">Matthew.Arsenault@amd.com</a>>
Date: Mon Aug 22 19:25:59 2016 +0000
AMDGPU: Handle structs directly in AMDGPUABIInfo
Structs are currently handled as pointer + byval, which makes AMDGPU
LLVM backend generate incorrect code when structs are used. This patch
changes struct argument to be handled directly and without flattening,
which Clover (Mesa 3D Gallium OpenCL state tracker) will be able to
handle. Flattening would expand the struct to individual elements and
pass each as a separate argument, which Clover can not
handle. Furthermore, such expansion does not fit the OpenCL
programming model which requires to explicitely specify each argument
index, size and memory location.
Patch by Vedran Miletić
git-svn-id: <a href="https://llvm.org/svn/llvm-project/cfe/trunk@279463">https://llvm.org/svn/llvm-project/cfe/trunk@279463</a>
91177308-0d34-0410-b5e6-96231b3b80d8
Please recheck.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>