diff options
author | Eli Bendersky <eliben@google.com> | 2015-04-15 22:27:06 +0000 |
---|---|---|
committer | Eli Bendersky <eliben@google.com> | 2015-04-15 22:27:06 +0000 |
commit | 4bdc50eccb1d41bc51232a55e734a70da8ae5ee2 (patch) | |
tree | c40ecbc8ef3e061dd087dc9c55cb125cc8d582d0 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | f17f34e42bbac229b51d67f989684d5cfc43a0c5 (diff) | |
download | bcm5719-llvm-4bdc50eccb1d41bc51232a55e734a70da8ae5ee2.tar.gz bcm5719-llvm-4bdc50eccb1d41bc51232a55e734a70da8ae5ee2.zip |
Create a frontend flag to disable CUDA cross-target call checks
For CUDA source, Sema checks that the targets of call expressions make sense
(e.g. a host function can't call a device function).
Adding a flag that lets us skip this check. Motivation: for source-to-source
translation tools that have to accept code that's not strictly kosher CUDA but
is still accepted by nvcc. The source-to-source translation tool can then fix
the code and leave calls that are semantically valid for the actual compilation
stage.
Differential Revision: http://reviews.llvm.org/D9036
llvm-svn: 235049
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 968f212dda9..da1a088097e 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1375,6 +1375,9 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, if (Args.hasArg(OPT_fcuda_allow_host_calls_from_host_device)) Opts.CUDAAllowHostCallsFromHostDevice = 1; + if (Args.hasArg(OPT_fcuda_disable_target_call_checks)) + Opts.CUDADisableTargetCallChecks = 1; + if (Opts.ObjC1) { if (Arg *arg = Args.getLastArg(OPT_fobjc_runtime_EQ)) { StringRef value = arg->getValue(); |