diff options
author | Akira Hatanaka <ahatanaka@apple.com> | 2015-07-29 14:25:58 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@apple.com> | 2015-07-29 14:25:58 +0000 |
commit | 085da7ecae9f00338f95bd60f38be5f3de58733a (patch) | |
tree | 98c492183ffa6634d1bc03eef82ee9b61aec403a /clang/lib/Driver | |
parent | e46f7ed6958336188b9d61ea4f4fc34df2dfc013 (diff) | |
download | bcm5719-llvm-085da7ecae9f00338f95bd60f38be5f3de58733a.tar.gz bcm5719-llvm-085da7ecae9f00338f95bd60f38be5f3de58733a.zip |
[AArch64] Pass subtarget feature "+strict-align".
This commit changes the driver to save subtarget feature "+strict-align"
to the IR instead of using backend option "aarch64-strict-align". This is
needed for LTO.
rdar://problem/21529937
llvm-svn: 243518
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index f554cae8c10..bd8f25f603f 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -983,15 +983,6 @@ void Clang::AddAArch64TargetArgs(const ArgList &Args, CmdArgs.push_back("-target-abi"); CmdArgs.push_back(ABIName); - if (Arg *A = Args.getLastArg(options::OPT_mno_unaligned_access, - options::OPT_munaligned_access)) { - CmdArgs.push_back("-backend-option"); - if (A->getOption().matches(options::OPT_mno_unaligned_access)) - CmdArgs.push_back("-aarch64-strict-align"); - else - CmdArgs.push_back("-aarch64-no-strict-align"); - } - if (Arg *A = Args.getLastArg(options::OPT_mfix_cortex_a53_835769, options::OPT_mno_fix_cortex_a53_835769)) { CmdArgs.push_back("-backend-option"); @@ -2068,6 +2059,11 @@ static void getAArch64TargetFeatures(const Driver &D, Features.push_back("-crc"); } + if (Arg *A = Args.getLastArg(options::OPT_mno_unaligned_access, + options::OPT_munaligned_access)) + if (A->getOption().matches(options::OPT_mno_unaligned_access)) + Features.push_back("+strict-align"); + if (Args.hasArg(options::OPT_ffixed_x18) || Triple.isOSDarwin()) Features.push_back("+reserve-x18"); } |