r227062 - Allows Clang to use LLVM's fixes-x18 option
Dimitry Andric
dimitry at andric.com
Mon Jan 26 13:54:15 PST 2015
Hi Renato and Hans,
Can we please get this revision (and its accompanying llvm revision r226664) into the release_36 branch, targeting 3.6.0?
-Dimitry
> On 26 Jan 2015, at 00:17, Renato Golin <renato.golin at linaro.org> wrote:
>
> Author: rengolin
> Date: Sun Jan 25 17:17:48 2015
> New Revision: 227062
>
> URL: http://llvm.org/viewvc/llvm-project?rev=227062&view=rev
> Log:
> Allows Clang to use LLVM's fixes-x18 option
>
> This patch allows clang to have llvm reserve the x18
> platform register on AArch64. FreeBSD will use this in the kernel for
> per-cpu data but has no need to reserve this register in userland so
> will need this flag to reserve it.
>
> This uses llvm r226664 to allow this register to be reserved.
>
> Patch by Andrew Turner.
>
> Added:
> cfe/trunk/test/Driver/aarch64-fixed-x18.c
> Modified:
> cfe/trunk/include/clang/Driver/Options.td
> cfe/trunk/lib/Driver/Tools.cpp
>
> Modified: cfe/trunk/include/clang/Driver/Options.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=227062&r1=227061&r2=227062&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Driver/Options.td (original)
> +++ cfe/trunk/include/clang/Driver/Options.td Sun Jan 25 17:17:48 2015
> @@ -1218,6 +1218,8 @@ def mfix_cortex_a53_835769 : Flag<["-"],
> def mno_fix_cortex_a53_835769 : Flag<["-"], "mno-fix-cortex-a53-835769">,
> Group<m_aarch64_Features_Group>,
> HelpText<"Don't workaround Cortex-A53 erratum 835769 (AArch64 only)">;
> +def ffixed_x18 : Flag<["-"], "ffixed-x18">, Group<m_aarch64_Features_Group>,
> + HelpText<"Reserve the x18 register (AArch64 only)">;
>
> def mvsx : Flag<["-"], "mvsx">, Group<m_ppc_Features_Group>;
> def mno_vsx : Flag<["-"], "mno-vsx">, Group<m_ppc_Features_Group>;
>
> Modified: cfe/trunk/lib/Driver/Tools.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=227062&r1=227061&r2=227062&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> +++ cfe/trunk/lib/Driver/Tools.cpp Sun Jan 25 17:17:48 2015
> @@ -958,6 +958,11 @@ void Clang::AddAArch64TargetArgs(const A
> if (A->getOption().matches(options::OPT_mno_global_merge))
> CmdArgs.push_back("-mno-global-merge");
> }
> +
> + if (Args.hasArg(options::OPT_ffixed_x18)) {
> + CmdArgs.push_back("-backend-option");
> + CmdArgs.push_back("-aarch64-reserve-x18");
> + }
> }
>
> // Get CPU and ABI names. They are not independent
>
> Added: cfe/trunk/test/Driver/aarch64-fixed-x18.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/aarch64-fixed-x18.c?rev=227062&view=auto
> ==============================================================================
> --- cfe/trunk/test/Driver/aarch64-fixed-x18.c (added)
> +++ cfe/trunk/test/Driver/aarch64-fixed-x18.c Sun Jan 25 17:17:48 2015
> @@ -0,0 +1,4 @@
> +// RUN: %clang -target aarch64-none-gnu -ffixed-x18 -### %s 2> %t
> +// RUN: FileCheck --check-prefix=CHECK-FIXED-X18 < %t %s
> +
> +// CHECK-FIXED-X18: "-backend-option" "-aarch64-reserve-x18"
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150126/7dfc506e/attachment.sig>
More information about the cfe-commits
mailing list