llvm-project/clang/test/CodeGenOpenCL
Yaxun Liu 10712d9203 [OpenCL] Clean up and add missing fields for block struct
Currently block is translated to a structure equivalent to

struct Block {
  void *isa;
  int flags;
  int reserved;
  void *invoke;
  void *descriptor;
};
Except invoke, which is the pointer to the block invoke function,
all other fields are useless for OpenCL, which clutter the IR and
also waste memory since the block struct is passed to the block
invoke function as argument.

On the other hand, the size and alignment of the block struct is
not stored in the struct, which causes difficulty to implement
__enqueue_kernel as library function, since the library function
needs to know the size and alignment of the argument which needs
to be passed to the kernel.

This patch removes the useless fields from the block struct and adds
size and align fields. The equivalent block struct will become

struct Block {
  int size;
  int align;
  generic void *invoke;
 /* custom fields */
};
It also changes the pointer to the invoke function to be
a generic pointer since the address space of a function
may not be private on certain targets.

Differential Revision: https://reviews.llvm.org/D37822

llvm-svn: 314932
2017-10-04 20:32:17 +00:00
..
2011-04-15-vec-init-from-vec.cl
addr-space-struct-arg.cl AMDGPU: Use direct struct returns and arguments 2017-08-09 21:44:58 +00:00
address-space-constant-initializers.cl [AMDGPU] Temporarily change constant address space from 4 to 2 for the new address space mapping 2017-04-06 19:18:36 +00:00
address-spaces-conversions.cl [OpenCL] Fix bug in mergeTypes which causes equivalent types treated as different. 2016-04-28 17:34:57 +00:00
address-spaces-mangling.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
address-spaces.cl [AMDGPU] Fix regressions on mesa/clover with libclc due to address space 2017-07-04 19:57:18 +00:00
amdgcn-automatic-variable.cl [AMDGPU] Fix size and alignment of size_t and pointer types 2017-07-05 04:58:24 +00:00
amdgcn-flat-scratch-name.cl AMDGPU: Fix inconsistent register name for flat_scratch 2016-02-27 09:06:22 +00:00
amdgcn-large-globals.cl Fix array sizes where address space is not yet known 2017-03-21 18:55:39 +00:00
amdgpu-abi-struct-coerce.cl AMDGPU: Use direct struct returns and arguments 2017-08-09 21:44:58 +00:00
amdgpu-alignment.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
amdgpu-attrs.cl IRGen: Add optnone attribute on function during O0 2017-05-29 05:38:20 +00:00
amdgpu-call-kernel.cl AMDGPU: Set amdgpu_kernel calling convention for OpenCL kernels. 2016-06-30 09:06:33 +00:00
amdgpu-calling-conv.cl AMDGPU: Set amdgpu_kernel calling convention for OpenCL kernels. 2016-06-30 09:06:33 +00:00
amdgpu-debug-info-pointer-address-space.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
amdgpu-debug-info-variable-expression.cl Adapt testcases to LLVM change r312144 in DIGlobalVariableExpression 2017-08-30 18:22:23 +00:00
amdgpu-env-amdgiz.cl [OpenCL] Map default address space to alloca address space 2017-04-11 17:24:23 +00:00
amdgpu-nullptr.cl AMDGPU: Use direct struct returns and arguments 2017-08-09 21:44:58 +00:00
amdgpu-sizeof-alignof.cl [AMDGPU] Fix size and alignment of size_t and pointer types 2017-07-05 04:58:24 +00:00
as_type.cl [OpenCL] Fix bug in __builtin_astype causing invalid LLVM cast instructions 2016-10-03 14:41:50 +00:00
atomic-ops-libcall.cl Add more tests for OpenCL atomic builtin functions 2017-09-13 18:56:25 +00:00
atomic-ops.cl Add more tests for OpenCL atomic builtin functions 2017-09-13 18:56:25 +00:00
blocks.cl [OpenCL] Clean up and add missing fields for block struct 2017-10-04 20:32:17 +00:00
bool_cast.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
builtins-amdgcn-gfx9.cl AMDGPU: Add fmed3 half builtin 2017-02-22 20:55:59 +00:00
builtins-amdgcn-vi.cl [AMDGPU] Add builtin functions readlane ds_permute mov_dpp 2017-03-10 01:30:46 +00:00
builtins-amdgcn.cl Resubmit r303861. 2017-05-26 21:08:20 +00:00
builtins-generic-amdgcn.cl AMDGPU: Add test for generic builtin behavior 2016-04-14 22:34:39 +00:00
builtins-r600.cl AMDGPU: Remove legacy ldexp builtin 2016-07-15 21:33:06 +00:00
byval.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
cast_image.cl [OpenCL] Add the lit test for image size which was omitted by r277647. 2016-08-04 19:35:17 +00:00
cl-strict-aliasing.cl
cl20-device-side-enqueue.cl [OpenCL] Clean up and add missing fields for block struct 2017-10-04 20:32:17 +00:00
const-str-array-decay.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
constant-addr-space-globals.cl [OpenCL] Emit function-scope variable in constant address space as static variable 2017-05-15 14:47:47 +00:00
convergent.cl clang/test/CodeGenOpenCL/convergent.cl: Satisfy -Asserts with "opt -instnamer". 2016-11-01 20:08:17 +00:00
denorms-are-zero.cl AMDGPU: Update for changed subtarget feature name 2017-01-23 22:31:14 +00:00
event_t.cl [OpenCL] Allow explicit cast of 0 to event_t. 2016-05-20 17:18:16 +00:00
ext-vector-shuffle.cl
extension-begin.cl Recommit r289979 [OpenCL] Allow disabling types and declarations associated with extensions 2016-12-18 05:18:55 +00:00
fpmath.cl Fixing build failure by adding triple option to new test condition. 2016-12-13 17:04:33 +00:00
gfx9-fp32-denorms.cl [AMDGPU][GFX9] Set +fp32-denormals for >=gfx900 unless -cl-denorms-are-zero is set 2017-04-14 05:33:57 +00:00
half.cl [OpenCL] Test on half immediate support. 2017-05-29 07:44:22 +00:00
images.cl [OpenCL] Complete image types support. 2016-04-08 13:40:33 +00:00
kernel-arg-info-single-as.cl Fix r286819 (accidentally patched multiple times. 2016-11-14 13:14:38 +00:00
kernel-arg-info.cl [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef 2017-07-26 18:49:54 +00:00
kernel-attributes.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
kernel-metadata.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
kernels-have-spir-cc-by-default.cl [OpenCL] Makes kernels use the SPIR_KERNEL CC by default. 2017-06-01 07:18:49 +00:00
lifetime.cl CodeGen: Let lifetime intrinsic use alloca address space 2017-04-17 20:03:11 +00:00
local-initializer-undef.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
local.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
logical-ops.cl
memcpy.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
no-half.cl [OpenCL] Add half load and store builtins 2017-09-07 19:39:10 +00:00
no-signed-zeros.cl [OpenCL] Add missing -cl-no-signed-zeros option into driver 2016-07-08 20:28:29 +00:00
null_queue.cl Fix problems in "[OpenCL] Enabling the usage of CLK_NULL_QUEUE as compare operand." 2016-12-23 14:55:49 +00:00
opencl_types.cl [AMDGPU] Change addr space of clk_event_t, queue_t and reserve_id_t to global 2017-09-13 18:50:42 +00:00
overload.cl [OpenCL] Added implicit conversion rank for overloading functions with vector data type in OpenCL 2017-03-21 12:55:55 +00:00
partial_initializer.cl [OpenCL] Setting constant address space for array initializers 2016-10-31 10:26:31 +00:00
pipe_builtin.cl [OpenCL] Enable subgroup extension in tests 2017-07-31 15:50:27 +00:00
pipe_types.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
preserve_vec3.cl Preserve vec3 type. 2017-04-04 16:40:25 +00:00
private-array-initialization.cl [OpenCL] Setting constant address space for array initializers 2016-10-31 10:26:31 +00:00
ptx-calls.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
ptx-kernels.cl [OpenCL] spir_kern by defaul: fix old test cases 2017-06-01 08:19:43 +00:00
relaxed-fpmath.cl [OpenCL] Extended mapping of parcing CodeGen arguments 2017-03-27 10:38:01 +00:00
sampler.cl [OpenCL] Enables passing sampler initializer to function argument 2017-04-05 09:02:56 +00:00
shifts.cl Update clang for D20348 2016-06-14 21:02:05 +00:00
single-precision-constant.cl
size_t.cl [AMDGPU] Do not require opencl triple environment for OpenCL 2017-05-23 16:15:53 +00:00
spir-calling-conv.cl
spir32_target.cl
spir64_target.cl
spir_version.cl [OpenCL] Fix OpenCL and SPIR version metadata generation. 2017-06-20 14:30:18 +00:00
str_literals.cl [OpenCL] Align fake address space map with the SPIR target maps. 2016-12-23 16:11:25 +00:00
to_addr_builtin.cl [OpenCL] Added underscores to the names of 'to_addr' OpenCL built-ins. 2016-08-04 18:06:27 +00:00
unroll-hint.cl [OpenCL] Enable unroll hint for OpenCL 1.x. 2016-12-13 14:02:35 +00:00
vectorLoadStore.cl [OpenCL] Fixed CL version in failing test. 2017-09-27 17:03:35 +00:00
vector_literals_nested.cl
vector_literals_valid.cl
vector_logops.cl
vector_odd.cl
vector_shufflevector_valid.cl
vla.cl [OpenCL] Map default address space to alloca address space 2017-04-11 17:24:23 +00:00