diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-12-03 21:53:36 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-12-03 21:53:36 +0000 |
commit | bbc017851815da300ce9d6315204a73d68754a1c (patch) | |
tree | f111ef9bcd2b50a00395b8fbd7a1c70751c6dcba /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | d34e4d235428e13810d695400e5a14f5b8752c13 (diff) | |
download | bcm5719-llvm-bbc017851815da300ce9d6315204a73d68754a1c.tar.gz bcm5719-llvm-bbc017851815da300ce9d6315204a73d68754a1c.zip |
CUDA host device code with two code paths
Summary:
Allow CUDA host device functions with two code paths using __CUDA_ARCH__
to differentiate between code path being compiled.
For example:
__host__ __device__ void host_device_function(void) {
#ifdef __CUDA_ARCH__
device_only_function();
#else
host_only_function();
#endif
}
Patch by Jacques Pienaar.
Reviewed By: rnk
Differential Revision: http://reviews.llvm.org/D6457
llvm-svn: 223271
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index bdd0f42d61e..65ffd5475ca 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1349,6 +1349,9 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, if (Args.hasArg(OPT_fno_operator_names)) Opts.CXXOperatorNames = 0; + if (Args.hasArg(OPT_fcuda_is_device)) + Opts.CUDAIsDevice = 1; + if (Opts.ObjC1) { if (Arg *arg = Args.getLastArg(OPT_fobjc_runtime_EQ)) { StringRef value = arg->getValue(); |