summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorPirama Arumuga Nainar <pirama@google.com>2018-08-01 17:55:34 +0000
committerPirama Arumuga Nainar <pirama@google.com>2018-08-01 17:55:34 +0000
commitb818347aa08d34aca5902c3a0a00ea8a25caab7c (patch)
tree1a8671aeeb8fc383317aeead6e394bc38edd1394 /clang/lib/Basic
parent6bd4f924e738d3fc925d9d0f624f116a1ba5b210 (diff)
downloadbcm5719-llvm-b818347aa08d34aca5902c3a0a00ea8a25caab7c.tar.gz
bcm5719-llvm-b818347aa08d34aca5902c3a0a00ea8a25caab7c.zip
[Android] Increase default new alignment for Android
Summary: Android's memory allocators also guarantee 8-byte alignment for 32-bit architectures and 16-byte alignment for 64-bit. Reviewers: rsmith Subscribers: cfe-commits, srhines, enh Differential Revision: https://reviews.llvm.org/D50112 llvm-svn: 338603
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/TargetInfo.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp
index 3400c8721f7..7b69cb097c8 100644
--- a/clang/lib/Basic/TargetInfo.cpp
+++ b/clang/lib/Basic/TargetInfo.cpp
@@ -63,8 +63,9 @@ TargetInfo::TargetInfo(const llvm::Triple &T) : TargetOpts(), Triple(T) {
MinGlobalAlign = 0;
// From the glibc documentation, on GNU systems, malloc guarantees 16-byte
// alignment on 64-bit systems and 8-byte alignment on 32-bit systems. See
- // https://www.gnu.org/software/libc/manual/html_node/Malloc-Examples.html
- if (T.isGNUEnvironment() || T.isWindowsMSVCEnvironment())
+ // https://www.gnu.org/software/libc/manual/html_node/Malloc-Examples.html.
+ // This alignment guarantee also applies to Windows and Android.
+ if (T.isGNUEnvironment() || T.isWindowsMSVCEnvironment() || T.isAndroid())
NewAlign = Triple.isArch64Bit() ? 128 : Triple.isArch32Bit() ? 64 : 0;
else
NewAlign = 0; // Infer from basic type alignment.
OpenPOWER on IntegriCloud