https://github.com/Kalesh-Singh created https://github.com/llvm/llvm-project/pull/70251
File size increase were found negligible from sparseness and zero block compression in f2fs and ext4 (supported filesystems for Android's userdata partition). >From 9a28c8670619cef36c24cfae426631098920fecc Mon Sep 17 00:00:00 2001 From: Kalesh Singh <kaleshsi...@google.com> Date: Wed, 25 Oct 2023 13:31:42 -0700 Subject: [PATCH] ANDROID: AArch64: Change default max-page-size from 4k to 16k File size increase were found negligible from sparseness and zero block compression in f2fs and ext4 (supported filesystems for Android's userdata partition). Signed-off-by: Kalesh Singh <kaleshsi...@google.com> --- clang/lib/Driver/ToolChains/Linux.cpp | 17 ++++++++++++----- clang/test/Driver/android-link.cpp | 3 ++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp index 735af54f114cef2..059ed0e8c06a160 100644 --- a/clang/lib/Driver/ToolChains/Linux.cpp +++ b/clang/lib/Driver/ToolChains/Linux.cpp @@ -233,11 +233,18 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) ExtraOpts.push_back("relro"); } - // Android ARM/AArch64 use max-page-size=4096 to reduce VMA usage. Note, lld - // from 11 onwards default max-page-size to 65536 for both ARM and AArch64. - if ((Triple.isARM() || Triple.isAArch64()) && Triple.isAndroid()) { - ExtraOpts.push_back("-z"); - ExtraOpts.push_back("max-page-size=4096"); + // Note, lld from 11 onwards default max-page-size to 65536 for both ARM and + // AArch64. + if (Triple.isAndroid()) { + if (Triple.isARM()) { + // Android ARM uses max-page-size=4096 to reduce VMA usage. + ExtraOpts.push_back("-z"); + ExtraOpts.push_back("max-page-size=4096"); + } else if (Triple.isAArch64()) { + // Android AArch64 uses max-page-size=16384 to support 4k/16k page sizes. + ExtraOpts.push_back("-z"); + ExtraOpts.push_back("max-page-size=16384"); + } } if (GCCInstallation.getParentLibPath().contains("opt/rh/")) diff --git a/clang/test/Driver/android-link.cpp b/clang/test/Driver/android-link.cpp index fa9cbc5d0c7a554..f9bdd00507d7bc7 100644 --- a/clang/test/Driver/android-link.cpp +++ b/clang/test/Driver/android-link.cpp @@ -17,9 +17,10 @@ // // RUN: %clang -target aarch64-none-linux-android \ // RUN: -### -v %s 2> %t -// RUN: FileCheck -check-prefix=MAX-PAGE-SIZE < %t %s +// RUN: FileCheck -check-prefix=MAX-PAGE-SIZE-AARCH64 < %t %s // // GENERIC-ARM: --fix-cortex-a53-843419 // CORTEX-A53: --fix-cortex-a53-843419 // CORTEX-A57-NOT: --fix-cortex-a53-843419 // MAX-PAGE-SIZE: "-z" "max-page-size=4096" +// MAX-PAGE-SIZE-AARCH64: "-z" "max-page-size=16384" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits