forked from OSchip/llvm-project
8d27be8dba
This patch introduces 2 new address spaces in OpenCL: global_device and global_host which are a subset of a global address space, so the address space scheme will be looking like: ``` generic->global->host ->device ->private ->local constant ``` Justification: USM allocations may be associated with both host and device memory. We want to give users a way to tell the compiler the allocation type of a USM pointer for optimization purposes. (Link to the Unified Shared Memory extension: https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/USM/cl_intel_unified_shared_memory.asciidoc) Before this patch USM pointer could be only in opencl_global address space, hence a device backend can't tell if a particular pointer points to host or device memory. On FPGAs at least we can generate more efficient hardware code if the user tells us where the pointer can point - being able to distinguish between these types of pointers at compile time allows us to instantiate simpler load-store units to perform memory transactions. Patch by Dmitry Sidorov. Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D82174 |
||
---|---|---|
.. | ||
access-qualifier.cl | ||
address-spaces-conversions-cl2.0.cl | ||
address-spaces.cl | ||
amdgpu-attrs.cl | ||
arithmetic-conversions.cl | ||
arm-integer-dot-product.cl | ||
array-init.cl | ||
array-parameters.cl | ||
as_type.cl | ||
atomic-init.cl | ||
atomic-ops.cl | ||
block-array-capturing.cl | ||
bool-vectors.cl | ||
builtin.cl | ||
builtins-amdgcn-error-ci.cl | ||
builtins-amdgcn-error-f16.cl | ||
builtins-amdgcn-error-flat-address-space.cl | ||
builtins-amdgcn-error-gfx9.cl | ||
builtins-amdgcn-error-gfx10-param.cl | ||
builtins-amdgcn-error-gfx10.cl | ||
builtins-amdgcn-error-gfx908-param.cl | ||
builtins-amdgcn-error-vi.cl | ||
builtins-amdgcn-error.cl | ||
cl20-device-side-enqueue.cl | ||
clang-builtin-version.cl | ||
clk_event_t.cl | ||
cond.cl | ||
convergent.cl | ||
endian-attr.cl | ||
event_t.cl | ||
event_t_overload.cl | ||
ext_vectors.cl | ||
extension-begin.cl | ||
extension-begin.h | ||
extension-version.cl | ||
extensions.cl | ||
fdeclare-opencl-builtins.cl | ||
format-strings-fixit.cl | ||
fp-options.cl | ||
func.cl | ||
half.cl | ||
images.cl | ||
init.cl | ||
intel-subgroup-avc-ext-types.cl | ||
invalid-assignment-constant-address-space.cl | ||
invalid-block.cl | ||
invalid-constant.cl | ||
invalid-image.cl | ||
invalid-kernel-attrs.cl | ||
invalid-kernel-parameters.cl | ||
invalid-kernel.cl | ||
invalid-pipe-builtin-cl2.0.cl | ||
invalid-pipes-cl2.0.cl | ||
lit.local.cfg | ||
logical-ops.cl | ||
multistep-explicit-cast.cl | ||
nosvm.cl | ||
null_literal.cl | ||
null_queue.cl | ||
numbered-address-space.cl | ||
pipes-1.2-negative.cl | ||
predefined-expr.cl | ||
printf-format-string-warnings.cl | ||
printf-format-strings.cl | ||
queue_t_overload.cl | ||
recovery-expr.cl | ||
sampler_t.cl | ||
sampler_t_overload.cl | ||
shifts.cl | ||
sizeof.cl | ||
storageclass-cl20.cl | ||
storageclass.cl | ||
str_literals.cl | ||
to_addr_builtin.cl | ||
types.cl | ||
unroll-hint.cl | ||
unsupported.cl | ||
usm-address-spaces-conversions.cl | ||
vec_compare.cl | ||
vec_step.cl | ||
vector_conv_invalid.cl | ||
vector_inc_dec_ops.cl | ||
vector_literals_invalid.cl | ||
vector_swizzle_length.cl | ||
warn-missing-prototypes.cl |