From: Bradley Smith Date: Thu, 16 Oct 2014 16:35:14 +0000 (+0000) Subject: [AArch64] Enable A53 erratum workaround (835769) by default for Android targets X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=429b0fb2eb3217714577172a6fa75de87f87ef21;p=clang [AArch64] Enable A53 erratum workaround (835769) by default for Android targets git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219933 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 713f70ef26..da2b651a10 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -920,6 +920,10 @@ void Clang::AddAArch64TargetArgs(const ArgList &Args, CmdArgs.push_back("-aarch64-fix-cortex-a53-835769=1"); else CmdArgs.push_back("-aarch64-fix-cortex-a53-835769=0"); + } else if (Triple.getEnvironment() == llvm::Triple::Android) { + // Enabled A53 errata (835769) workaround by default on android + CmdArgs.push_back("-backend-option"); + CmdArgs.push_back("-aarch64-fix-cortex-a53-835769=1"); } // Setting -mno-global-merge disables the codegen global merge pass. Setting diff --git a/test/Driver/aarch64-fix-cortex-a53-835769-cg.c b/test/CodeGen/aarch64-fix-cortex-a53-835769.c similarity index 61% rename from test/Driver/aarch64-fix-cortex-a53-835769-cg.c rename to test/CodeGen/aarch64-fix-cortex-a53-835769.c index f2f3abf9cf..7ad124012e 100644 --- a/test/Driver/aarch64-fix-cortex-a53-835769-cg.c +++ b/test/CodeGen/aarch64-fix-cortex-a53-835769.c @@ -1,4 +1,5 @@ // REQUIRES: aarch64-registered-target + // RUN: %clang -O3 -target aarch64-linux-eabi %s -S -o- \ // RUN: | FileCheck --check-prefix=CHECK-NO --check-prefix=CHECK %s // RUN: %clang -O3 -target aarch64-linux-eabi -mfix-cortex-a53-835769 %s -S -o- 2>&1 \ @@ -6,6 +7,13 @@ // RUN: %clang -O3 -target aarch64-linux-eabi -mno-fix-cortex-a53-835769 %s -S -o- 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-NO --check-prefix=CHECK %s +// RUN: %clang -O3 -target aarch64-android-eabi %s -S -o- \ +// RUN: | FileCheck --check-prefix=CHECK-YES --check-prefix=CHECK %s +// RUN: %clang -O3 -target aarch64-android-eabi -mfix-cortex-a53-835769 %s -S -o- \ +// RUN: | FileCheck --check-prefix=CHECK-YES --check-prefix=CHECK %s +// RUN: %clang -O3 -target aarch64-android-eabi -mno-fix-cortex-a53-835769 %s -S -o- \ +// RUN: | FileCheck --check-prefix=CHECK-NO --check-prefix=CHECK %s + typedef long int64_t; int64_t f_load_madd_64(int64_t a, int64_t b, int64_t *c) { diff --git a/test/Driver/aarch64-fix-cortex-a53-835769.c b/test/Driver/aarch64-fix-cortex-a53-835769.c index 379a3238ac..3fe918adec 100644 --- a/test/Driver/aarch64-fix-cortex-a53-835769.c +++ b/test/Driver/aarch64-fix-cortex-a53-835769.c @@ -4,6 +4,10 @@ // RUN: | FileCheck --check-prefix=CHECK-YES %s // RUN: %clang -target aarch64-linux-eabi -mno-fix-cortex-a53-835769 %s -### 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-NO %s + +// RUN: %clang -target aarch64-android-eabi %s -### 2>&1 \ +// RUN: | FileCheck --check-prefix=CHECK-YES %s + // CHECK-DEF-NOT: "-backend-option" "-aarch64-fix-cortex-a53-835769" // CHECK-YES: "-backend-option" "-aarch64-fix-cortex-a53-835769=1" // CHECK-NO: "-backend-option" "-aarch64-fix-cortex-a53-835769=0"