llvm-project/polly/test/GPGPU
Tobias Grosser aaabbbf886 GPGPU: Do not assume arrays start at 0
Our alias checks precisely check that the minimal and maximal accessed elements
do not overlap in a kernel. Hence, we must ensure that our host <-> device
transfers do not touch additional memory locations that are not covered in
the alias check. To ensure this, we make sure that the data we copy for a
given array is only the data from the smallest element accessed to the largest
element accessed.

We also adjust the size of the array according to the offset at which the array
is actually accessed.

An interesting result of this is: In case array are accessed with negative
subscripts ,e.g., A[-100], we automatically allocate and transfer _more_ data to
cover the full array. This is important as such code indeed exists in the wild.

llvm-svn: 281611
2016-09-15 14:05:58 +00:00
..
cuda-annotations.ll Add missing 'REQUIRES' line 2016-08-05 07:08:45 +00:00
double-parallel-loop.ll [GPGPU] Use separate basic block for GPU initialization code 2016-08-09 15:35:03 +00:00
host-control-flow.ll [BlockGenerator] Also eliminate dead code not originating from BB 2016-08-09 08:59:05 +00:00
host-statement.ll [GPGPU] Ensure arrays where only parts are modified are copied to GPU 2016-08-10 10:58:19 +00:00
invalid-kernel.ll GPGPU: Bail out gracefully in case of invalid IR 2016-09-12 06:06:31 +00:00
kernel-params-only-some-arrays.ll GPGPU: Mark kernel functions as polly.skip 2016-08-03 12:00:07 +00:00
kernel-params-scop-parameter.ll GPGPU: Mark kernel functions as polly.skip 2016-08-03 12:00:07 +00:00
non-zero-array-offset.ll GPGPU: Do not assume arrays start at 0 2016-09-15 14:05:58 +00:00
only-part-of-array-modified.ll [GPGPU] Ensure arrays where only parts are modified are copied to GPU 2016-08-10 10:58:19 +00:00
parametric-loop-bound.ll Add missing REQUIRES line 2016-07-28 07:08:34 +00:00
phi-nodes-in-kernel.ll GPGPU: Do not assume arrays start at 0 2016-09-15 14:05:58 +00:00
private-memory.ll GPGPU: Add private memory support 2016-08-04 12:39:03 +00:00
region-stmt.ll GPGPU: Allow region statements 2016-09-13 08:42:10 +00:00
remove-dead-instructions-in-stmt-2.ll [tests] Add two missing 'REQUIRES' lines 2016-08-09 09:11:39 +00:00
remove-dead-instructions-in-stmt.ll [tests] Add two missing 'REQUIRES' lines 2016-08-09 09:11:39 +00:00
run-time-check.ll [GPGPU] Create code to verify run-time conditions 2016-08-08 17:35:55 +00:00
scalar-param-and-value-32-bit.ll [GPGPU] Pass parameters always by using their own type 2016-08-09 07:22:08 +00:00
scalar-param-and-value-use.ll [GPGPU] Support Values referenced from both isl expr and llvm instructions 2016-08-08 19:22:19 +00:00
scalar-parameter-fp128.ll GPGPU: Generate PTX assembly code for the kernel modules 2016-07-22 07:11:12 +00:00
scalar-parameter-i80.ll GPGPU: Generate PTX assembly code for the kernel modules 2016-07-22 07:11:12 +00:00
scalar-parameter-i120.ll GPGPU: Generate PTX assembly code for the kernel modules 2016-07-22 07:11:12 +00:00
scalar-parameter-i128.ll GPGPU: Generate PTX assembly code for the kernel modules 2016-07-22 07:11:12 +00:00
scalar-parameter-i3000.ll GPGPU: Generate PTX assembly code for the kernel modules 2016-07-22 07:11:12 +00:00
scalar-parameter-ppc_fp128.ll GPGPU: Generate PTX assembly code for the kernel modules 2016-07-22 07:11:12 +00:00
scalar-parameter-x86_fp80.ll GPGPU: Generate PTX assembly code for the kernel modules 2016-07-22 07:11:12 +00:00
scalar-parameter.ll GPGPU: Handle scalar array references 2016-08-04 06:55:59 +00:00
scheduler-timeout.ll GPGPU: collect array references 2016-07-18 15:44:32 +00:00
shared-memory-scalar.ll GPGPU: Support scalars that are mapped to shared memory 2016-08-04 13:57:29 +00:00
shared-memory-two-dimensional.ll GPGPU: Sort dimension sizes of multi-dimensional shared memory arrays correctly 2016-08-05 08:27:24 +00:00
shared-memory.ll GPGPU: Add support for shared memory 2016-08-04 12:18:14 +00:00
size-cast.ll GPGPU: Extend types when array sizes have smaller types 2016-09-13 08:02:14 +00:00
untouched-arrays.ll Add missing 'REQUIRES' line 2016-09-11 13:42:42 +00:00