Author: kparzysz Date: Wed Feb 28 12:31:55 2018 New Revision: 326366 URL: http://llvm.org/viewvc/llvm-project?rev=326366&view=rev Log: [Hexagon] Add -ffixed-r19 driver option and translate it to +reserved-r19
Modified: cfe/trunk/include/clang/Driver/Options.td cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp cfe/trunk/test/Driver/hexagon-toolchain-elf.c Modified: cfe/trunk/include/clang/Driver/Options.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=326366&r1=326365&r2=326366&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/Options.td (original) +++ cfe/trunk/include/clang/Driver/Options.td Wed Feb 28 12:31:55 2018 @@ -2496,6 +2496,8 @@ def mno_hexagon_hvx_double : Flag<[ "-" ], "mno-hvx-double">, Group<m_hexagon_Features_HVX_Group>, HelpText<"Disable Hexagon Double Vector eXtensions">; +def ffixed_r19: Flag<["-"], "ffixed-r19">, + HelpText<"Reserve the r19 register (Hexagon only)">; // X86 feature flags Modified: cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp?rev=326366&r1=326365&r2=326366&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp Wed Feb 28 12:31:55 2018 @@ -521,11 +521,15 @@ unsigned HexagonToolChain::getOptimizati 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, Modified: cfe/trunk/test/Driver/hexagon-toolchain-elf.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hexagon-toolchain-elf.c?rev=326366&r1=326365&r2=326366&view=diff ============================================================================== --- cfe/trunk/test/Driver/hexagon-toolchain-elf.c (original) +++ cfe/trunk/test/Driver/hexagon-toolchain-elf.c Wed Feb 28 12:31:55 2018 @@ -504,12 +504,22 @@ // CHECK060-NEXT: hexagon-link // ----------------------------------------------------------------------------- +// ffixed-r19 +// ----------------------------------------------------------------------------- +// RUN: %clang -### -target hexagon-unknown-elf -ffixed-r19 %s 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK070 %s +// CHECK070: "-target-feature" "+reserved-r19" +// RUN: %clang -### -target hexagon-unknown-elf %s 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK071 %s +// CHECK071-NOT: "+reserved-r19" + +// ----------------------------------------------------------------------------- // Misc Defaults // ----------------------------------------------------------------------------- // RUN: %clang -### -target hexagon-unknown-elf \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ // RUN: -mcpu=hexagonv60 \ // RUN: %s 2>&1 \ -// RUN: | FileCheck -check-prefix=CHECK070 %s -// CHECK070: "-cc1" -// CHECK070: "-Wreturn-type" +// RUN: | FileCheck -check-prefix=CHECK080 %s +// CHECK080: "-cc1" +// CHECK080: "-Wreturn-type" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits