summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-10-14 20:57:26 +0000
committerTim Northover <tnorthover@apple.com>2014-10-14 20:57:26 +0000
commitaa09ac6e83f24a277d5ce573ebe2e9b9987b5dad (patch)
treec283393fba5923848c30ca91781ef8cb1a70ef85 /llvm/lib
parentdb5f86a9bf983dc0f3ea659bc1897803b8f1fd52 (diff)
downloadbcm5719-llvm-aa09ac6e83f24a277d5ce573ebe2e9b9987b5dad.tar.gz
bcm5719-llvm-aa09ac6e83f24a277d5ce573ebe2e9b9987b5dad.zip
ARM: set preferred aggregate alignment to 32 universally.
Before, ARM and Thumb mode code had different preferred alignments, which could lead to some rather unexpected results. There's justification for reducing it from the default 64-bits (wasted space), but I don't think there is for going below 32-bits. There's no actual ABI change here, just to reassure people. llvm-svn: 219719
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/ARM/ARMSubtarget.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/ARMSubtarget.cpp b/llvm/lib/Target/ARM/ARMSubtarget.cpp
index a3ade981740..bc04f37331e 100644
--- a/llvm/lib/Target/ARM/ARMSubtarget.cpp
+++ b/llvm/lib/Target/ARM/ARMSubtarget.cpp
@@ -123,10 +123,9 @@ static std::string computeDataLayout(ARMSubtarget &ST) {
else
Ret += "-v128:64:128";
- // On thumb and APCS, only try to align aggregates to 32 bits (the default is
- // 64 bits).
- if (ST.isThumb() || ST.isAPCS_ABI())
- Ret += "-a:0:32";
+ // Try to align aggregates to 32 bits (the default is 64 bits, which has no
+ // particular hardware support on 32-bit ARM).
+ Ret += "-a:0:32";
// Integer registers are 32 bits.
Ret += "-n32";
OpenPOWER on IntegriCloud