[CUDA] Relax restrictions on GPU-side variadic functions
authorArtem Belevich <tra@google.com>
Tue, 16 May 2023 19:30:22 +0000 (12:30 -0700)
committerArtem Belevich <tra@google.com>
Wed, 17 May 2023 19:51:01 +0000 (12:51 -0700)
commita825f3754b3ca1591068cf99bc224af30a311e63
treeddf9c6d8b62dd891a6eb7fb6fbc024216fda30b6
parenta07b135ce0c0111bd83450b5dc29ef0381cdbc39
[CUDA] Relax restrictions on GPU-side variadic functions

Allow parsing GPU-side variadic functions when we're compiling with CUDA-9 or
newer. We still do not allow accessing variadic arguments.

CUDA-9 was the version which introduced PTX-6.0 which allows implementing
variadic functions, so older versions can't have variadics in principle.

This is required for dealing with headers in recent CUDA versions that rely on
variadic function declarations in some of the templated code in libcu++.
E.g. https://github.com/llvm/llvm-project/issues/58410

Differential Revision: https://reviews.llvm.org/D150718
clang/lib/Driver/ToolChains/Cuda.cpp