llvm-project/clang/test/CodeGenCUDA
Artem Belevich 9b9294674b [CUDA] Make vtable construction aware of host/device side of CUDA compilation.
C++ emits vtables for classes that have key function present in the
current TU. While we compile CUDA the fact that key function was found
in this TU does not mean that we are going to generate code for it. E.g.
vtable for a class with host-only methods should not (and can not) be
generated on device side, because we'll never generate code for them
during device-side compilation.

This patch adds an extra CUDA-specific check during key method computation
and filters out potential key methods that are not suitable for this side
of CUDA compilation.

When we codegen vtable, entries for unsuitable methods are set to null.

Differential Revision: http://reviews.llvm.org/D15309

llvm-svn: 255911
2015-12-17 18:12:36 +00:00
..
Inputs Allow linking multiple bitcode files. 2015-10-27 17:56:59 +00:00
address-spaces.cu [CUDA] Allow trivial constructors as initializer for __shared__ variables. 2015-09-10 17:26:58 +00:00
cuda-builtin-vars.cu [cuda] Added support for CUDA built-in variables. 2015-04-21 22:14:13 +00:00
device-stub.cu [cuda] Fixed test case failure on s390x 2015-05-11 18:35:58 +00:00
device-vtable.cu [CUDA] Make vtable construction aware of host/device side of CUDA compilation. 2015-12-17 18:12:36 +00:00
filter-decl.cu [CUDA] Change initializer for CUDA device code based on CUDA documentation. 2015-08-22 05:49:28 +00:00
function-overload.cu [CUDA] Allow function overloads in CUDA based on host/device attributes. 2015-09-22 17:22:59 +00:00
host-device-calls-host.cu CUDA: Add option to allow host device functions to call host functions 2015-02-24 21:45:33 +00:00
kernel-call.cu Move all CUDA testing inputs to Inputs/ subdirectory inside the tests. 2014-04-28 22:21:28 +00:00
launch-bounds.cu [cuda] Allow using integral non-type template parameters as launch_bounds attribute arguments. 2015-04-21 22:55:54 +00:00
link-device-bitcode.cu Allow linking multiple bitcode files. 2015-10-27 17:56:59 +00:00
llvm-used.cu When generating llvm.used, we may need an addrspacecast instead of a bitcast. 2015-02-02 21:05:49 +00:00
ptx-kernels.cu [CUDA] __global__ functions should always be visible externally. 2015-09-23 17:44:53 +00:00