diff options
author | Artem Belevich <tra@google.com> | 2015-11-17 22:28:55 +0000 |
---|---|---|
committer | Artem Belevich <tra@google.com> | 2015-11-17 22:28:55 +0000 |
commit | 8601733c1cec09bbda859129eb00a560dca034bb (patch) | |
tree | e06469532f1c3f3bdaec5e5e99abdef7801446bf /clang/lib/Driver/ToolChains.cpp | |
parent | c29db84419592e98e71a08d1a9fb04a3d6b51a0c (diff) | |
download | bcm5719-llvm-8601733c1cec09bbda859129eb00a560dca034bb.tar.gz bcm5719-llvm-8601733c1cec09bbda859129eb00a560dca034bb.zip |
[CUDA] Make CUDA compilation usable by default.
Currently clang requires several additional command
line options in order to enable new features needed
during CUDA compilation. This patch makes these
options default.
* Automatically include cuda_runtime.h if we've found
a valid CUDA installation.
* Disable automatic CUDA header inclusion during unit tests.
* Added test case for command line construction.
* Enabled target overloads and relaxed call checks that are
needed in order to include CUDA headers.
* Added CUDA-7.5 installation path to the CUDA installation search list.
* Define __CUDA__ macro to indicate CUDA compilation.
llvm-svn: 253389
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 531e7900b11..78a611e56d4 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -1629,6 +1629,7 @@ void Generic_GCC::CudaInstallationDetector::init( Args.getLastArgValue(options::OPT_cuda_path_EQ)); else { CudaPathCandidates.push_back(D.SysRoot + "/usr/local/cuda"); + CudaPathCandidates.push_back(D.SysRoot + "/usr/local/cuda-7.5"); CudaPathCandidates.push_back(D.SysRoot + "/usr/local/cuda-7.0"); } @@ -4134,8 +4135,11 @@ void Linux::AddCudaIncludeArgs(const ArgList &DriverArgs, if (DriverArgs.hasArg(options::OPT_nocudainc)) return; - if (CudaInstallation.isValid()) + if (CudaInstallation.isValid()) { addSystemInclude(DriverArgs, CC1Args, CudaInstallation.getIncludePath()); + CC1Args.push_back("-include"); + CC1Args.push_back("cuda_runtime.h"); + } } bool Linux::isPIEDefault() const { return getSanitizerArgs().requiresPIE(); } |