summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-02-28 20:31:55 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2018-02-28 20:31:55 +0000
commitfde8b042358ac2b8ac0b7c3a590e9471d3515462 (patch)
treea875b67a806056707f42e6b7766f2a86520992c3 /clang/lib
parent771daeda32d413628210ec30b79dc89f902baf4d (diff)
downloadbcm5719-llvm-fde8b042358ac2b8ac0b7c3a590e9471d3515462.tar.gz
bcm5719-llvm-fde8b042358ac2b8ac0b7c3a590e9471d3515462.zip
[Hexagon] Add -ffixed-r19 driver option and translate it to +reserved-r19
llvm-svn: 326366
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/ToolChains/Hexagon.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp
index 31281737c7a..77193cd0471 100644
--- a/clang/lib/Driver/ToolChains/Hexagon.cpp
+++ b/clang/lib/Driver/ToolChains/Hexagon.cpp
@@ -521,11 +521,15 @@ unsigned HexagonToolChain::getOptimizationLevel(
void HexagonToolChain::addClangTargetOptions(const ArgList &DriverArgs,
ArgStringList &CC1Args,
Action::OffloadKind) const {
- if (DriverArgs.hasArg(options::OPT_ffp_contract))
- return;
- unsigned OptLevel = getOptimizationLevel(DriverArgs);
- if (OptLevel >= 3)
- CC1Args.push_back("-ffp-contract=fast");
+ if (!DriverArgs.hasArg(options::OPT_ffp_contract)) {
+ unsigned OptLevel = getOptimizationLevel(DriverArgs);
+ if (OptLevel >= 3)
+ CC1Args.push_back("-ffp-contract=fast");
+ }
+ if (DriverArgs.hasArg(options::OPT_ffixed_r19)) {
+ CC1Args.push_back("-target-feature");
+ CC1Args.push_back("+reserved-r19");
+ }
}
void HexagonToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
OpenPOWER on IntegriCloud