diff options
author | Pirama Arumuga Nainar <pirama@google.com> | 2016-03-18 16:58:36 +0000 |
---|---|---|
committer | Pirama Arumuga Nainar <pirama@google.com> | 2016-03-18 16:58:36 +0000 |
commit | 8e2e9d6f4c295deb72a1b8f7b7f4c4adbc317460 (patch) | |
tree | dc48c03c7a1a051c06d611f59aa77276c2c62aa1 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | a814d3d288382baab2fd000a686e2c9095a4027c (diff) | |
download | llvm-8e2e9d6f4c295deb72a1b8f7b7f4c4adbc317460.zip llvm-8e2e9d6f4c295deb72a1b8f7b7f4c4adbc317460.tar.gz llvm-8e2e9d6f4c295deb72a1b8f7b7f4c4adbc317460.tar.bz2 |
Add -fnative-half-arguments-and-returns
Summary:
r246764 handled __fp16 arguments and returns for AAPCS, but skipped this
handling for OpenCL. Simlar to OpenCL, RenderScript also handles __fp16
type natively.
This patch adds the -fnative-half-arguments-and-returns command line
flag to allow such languages to skip this coercion of __fp16.
Reviewers: srhines, olista01
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18138
llvm-svn: 263795
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index fe0ee97..6a88e3e 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1434,6 +1434,7 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK, Opts.LaxVectorConversions = 0; Opts.DefaultFPContract = 1; Opts.NativeHalfType = 1; + Opts.NativeHalfArgsAndReturns = 1; } Opts.CUDA = IK == IK_CUDA || IK == IK_PreprocessedCuda || @@ -1795,7 +1796,11 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK, Opts.ModuleFeatures = Args.getAllArgValues(OPT_fmodule_feature); std::sort(Opts.ModuleFeatures.begin(), Opts.ModuleFeatures.end()); Opts.NativeHalfType |= Args.hasArg(OPT_fnative_half_type); - Opts.HalfArgsAndReturns = Args.hasArg(OPT_fallow_half_arguments_and_returns); + Opts.NativeHalfArgsAndReturns |= Args.hasArg(OPT_fnative_half_arguments_and_returns); + // Enable HalfArgsAndReturns if present in Args or if NativeHalfArgsAndReturns + // is enabled. + Opts.HalfArgsAndReturns = Args.hasArg(OPT_fallow_half_arguments_and_returns) + | Opts.NativeHalfArgsAndReturns; Opts.GNUAsm = !Args.hasArg(OPT_fno_gnu_inline_asm); // __declspec is enabled by default for the PS4 by the driver, and also |