summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2015-07-29 14:25:58 +0000
committerAkira Hatanaka <ahatanaka@apple.com>2015-07-29 14:25:58 +0000
commit085da7ecae9f00338f95bd60f38be5f3de58733a (patch)
tree98c492183ffa6634d1bc03eef82ee9b61aec403a /clang/lib
parente46f7ed6958336188b9d61ea4f4fc34df2dfc013 (diff)
downloadbcm5719-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')
-rw-r--r--clang/lib/Driver/Tools.cpp14
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");
}
OpenPOWER on IntegriCloud