llvm-project/clang/test/CodeGenCUDA
Yaxun Liu 9767089d00 [HIP] Support early finalization of device code for -fno-gpu-rdc
This patch renames -f{no-}cuda-rdc to -f{no-}gpu-rdc and keeps the original
options as aliases. When -fgpu-rdc is off,
clang will assume the device code in each translation unit does not call
external functions except those in the device library, therefore it is possible
to compile the device code in each translation unit to self-contained kernels
and embed them in the host object, so that the host object behaves like
usual host object which can be linked by lld.

The benefits of this feature is: 1. allow users to create static libraries which
can be linked by host linker; 2. amortized device code linking time.

This patch modifies HIP action builder to insert actions for linking device
code and generating HIP fatbin, and pass HIP fatbin to host backend action.
It extracts code for constructing command for generating HIP fatbin as
a function so that it can be reused by early finalization. It also modifies
codegen of HIP host constructor functions to embed the device fatbin
when it is available.

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

llvm-svn: 343611
2018-10-02 17:48:54 +00:00
..
Inputs [HIP] Add hip input kind and codegen for kernel launching 2018-04-25 01:10:37 +00:00
address-spaces.cu [CUDA] Let device-side shared variables be initialized with undef 2018-04-02 17:38:24 +00:00
alias.cu Disable emitting static extern C aliases for amdgcn target for CUDA 2018-03-29 14:50:00 +00:00
amdgpu-kernel-attrs.cu [CUDA][HIP] Allow CUDA __global__ functions to have amdgpu kernel attributes 2018-06-12 23:58:59 +00:00
builtins-amdgcn.cu Try to make builtin address space declarations not useless 2018-08-02 12:14:28 +00:00
convergent.cu [FileCheck] Add -allow-deprecated-dag-overlap to failing clang tests 2018-07-11 20:26:20 +00:00
cuda-builtin-vars.cu [CUDA] Rename cuda_builtin_vars.h to __clang_cuda_builtin_vars.h. 2016-10-08 22:16:08 +00:00
device-stub.cu [HIP] Support early finalization of device code for -fno-gpu-rdc 2018-10-02 17:48:54 +00:00
device-var-init.cu [CUDA][HIP] Allow function-scope static const variable 2018-07-28 03:05:25 +00:00
device-vtable.cu [CUDA][HIP] Do not emit type info when compiling for device 2018-06-05 15:11:02 +00:00
filter-decl.cu Really fix test on windows. 2018-02-23 19:38:41 +00:00
flush-denormals.cu [HIP] Support -fcuda-flush-denormals-to-zero for amdgcn 2018-07-21 02:02:22 +00:00
fp-contract.cu Use FPContractModeKind universally 2017-03-29 21:54:24 +00:00
function-overload.cu [CUDA] Disallow overloading destructors. 2016-10-03 16:48:23 +00:00
kernel-amdgcn.cu [CUDA] Set LLVM calling convention for CUDA kernel 2018-04-20 17:01:03 +00:00
kernel-args-alignment.cu [CUDA] Align kernel launch args correctly when the LLVM type's alignment is different from the clang type's alignment. 2016-07-27 22:36:21 +00:00
kernel-args.cu [CUDA][HIP] Set kernel calling convention before arrange function 2018-06-12 00:16:33 +00:00
kernel-call.cu Fix failure in lit test kernel-call.cu due to name mangling 2018-04-25 13:07:58 +00:00
launch-bounds.cu [CUDA] Improve target attribute checking for function templates. 2016-12-07 19:27:16 +00:00
library-builtin.cu [CUDA] CUDA has no device-side library builtins. 2018-01-23 19:08:18 +00:00
link-device-bitcode.cu Rename -mlink-cuda-bitcode to -mlink-builtin-bitcode 2018-08-20 18:16:48 +00:00
llvm-used.cu
nothrow.cu [CUDA] Add missing ':' to noexcept.cu test. 2016-10-05 00:27:38 +00:00
printf-aggregate.cu
printf.cu
propagate-metadata.cu Rename -mlink-cuda-bitcode to -mlink-builtin-bitcode 2018-08-20 18:16:48 +00:00
ptx-kernels.cu [CUDA] Give templated device functions internal linkage, templated kernels external linkage. 2016-06-30 18:41:33 +00:00
usual-deallocators.cu [CUDA] Ignore uncallable functions when we check for usual deallocators. 2018-09-21 17:29:33 +00:00