llvm-project/clang/test/SemaCUDA
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
add-inline-in-definition.cu
addr-of-overloaded-fn.cu
alias.cu
amdgpu-attrs.cu [CUDA][HIP] Allow CUDA __global__ functions to have amdgpu kernel attributes 2018-06-12 23:58:59 +00:00
asm-constraints-device.cu
asm-constraints-mixed.cu
attr-declspec.cu [CUDA] Add __declspec spellings for CUDA attributes. 2017-01-05 16:53:04 +00:00
attributes-on-non-cuda.cu
bad-attributes.cu
bad-calls-on-same-line.cu
builtins.cu Revert the tests that should've been reverted in rL341115 2018-08-30 20:53:15 +00:00
call-device-fn-from-host.cu [CUDA] Fixed false error reporting in case of calling H->G->HD->D. 2018-03-23 19:49:03 +00:00
call-host-fn-from-device.cu [CUDA] Ignore uncallable functions when we check for usual deallocators. 2018-09-21 17:29:33 +00:00
call-stack-for-deferred-err.cu [CUDA] Report "unsupported VLA" errors only on device side. 2017-11-28 18:51:42 +00:00
config-type.cu
cuda-builtin-vars.cu
cuda-inherits-calling-conv.cu [CUDA] Let NVPTX inherit the host's calling conventions. 2017-01-05 16:53:38 +00:00
cxx11-kernel-call.cu
device-var-init.cu [CUDA][HIP] Allow function-scope static const variable 2018-07-28 03:05:25 +00:00
error-includes-mode.cu [CUDA] When compilation fails, print the compilation mode. 2017-09-07 18:37:16 +00:00
exceptions.cu
extern-shared.cu [HIP] Support early finalization of device code for -fno-gpu-rdc 2018-10-02 17:48:54 +00:00
function-overload.cu Fix some handling of AST nodes with diagnostics. 2018-03-28 04:16:13 +00:00
function-target.cu
function-template-overload.cu Fix typos in clang 2018-04-06 15:14:32 +00:00
global-initializers-host.cu
gnu-inline.cu
host-device-constexpr.cu
implicit-copy.cu
implicit-device-lambda.cu
implicit-intrinsic.cu
implicit-member-target-collision-cxx11.cu
implicit-member-target-collision.cu
implicit-member-target.cu [cxx2a] P0641R2: (Some) type mismatches on defaulted functions only 2018-09-28 01:16:43 +00:00
kernel-call.cu Fix some handling of AST nodes with diagnostics. 2018-03-28 04:16:13 +00:00
launch_bounds.cu Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
lit.local.cfg
method-target.cu
no-call-stack-for-immediate-errs.cu [CUDA] Report "unsupported VLA" errors only on device side. 2017-11-28 18:51:42 +00:00
no-destructor-overload.cu PR34163: Don't cache an incorrect key function for a class if queried between 2017-08-12 01:46:03 +00:00
no-host-device-constexpr.cu
overloaded-delete.cu
pr27778.cu
qualifiers.cu
reference-to-kernel-fn.cu
trace-through-global.cu
usual-deallocators.cu [CUDA] Ignore uncallable functions when we check for usual deallocators. 2018-09-21 17:29:33 +00:00
vararg.cu
vla.cu [CUDA] Report "unsupported VLA" errors only on device side. 2017-11-28 18:51:42 +00:00