radeon/llvm: Allocate space for kernel metadata operands
authorAaron Watry <awatry@gmail.com>
Wed, 2 Jul 2014 21:27:31 +0000 (16:27 -0500)
committerAaron Watry <awatry@gmail.com>
Thu, 3 Jul 2014 20:18:03 +0000 (15:18 -0500)
commit824197efd526dec5623b37f2c6078c212c81eb2b
treee231885cf690d4fe947fb72a3731b7d3cbc8fd7f
parent7f0420700c473caee00a84596b22a600a7517b4d
radeon/llvm: Allocate space for kernel metadata operands

Previously, we were assuming that kernel metadata nodes only had 1 operand.

Kernels which have attributes can have more than 1, e.g.:
!0 = metadata !{void (i32 addrspace(1)*)* @testKernel, metadata !1}
!1 = metadata !{metadata !"work_group_size_hint", i32 4, i32 1, i32 1}

Attempting to get the kernel without the correct number of attributes led
to memory corruption and luxrays crashing out.

Fixes the cl/program/execute/attributes.cl piglit test.

Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76223
CC: "10.2" <mesa-stable@lists.freedesktop.org>
src/gallium/drivers/radeon/radeon_llvm_util.c