]> granicus.if.org Git - clang/commitdiff
[AArch64] Enable A53 erratum workaround (835769) by default for Android targets
authorBradley Smith <bradley.smith@arm.com>
Thu, 16 Oct 2014 16:35:14 +0000 (16:35 +0000)
committerBradley Smith <bradley.smith@arm.com>
Thu, 16 Oct 2014 16:35:14 +0000 (16:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219933 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/Tools.cpp
test/CodeGen/aarch64-fix-cortex-a53-835769.c [moved from test/Driver/aarch64-fix-cortex-a53-835769-cg.c with 61% similarity]
test/Driver/aarch64-fix-cortex-a53-835769.c

index 713f70ef2604b0c1bae79c80031679bc1dd6eca3..da2b651a10a8f44f50387835e02245e9220b6b91 100644 (file)
@@ -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
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 f2f3abf9cfe2a757a269098b10339857d825f880..7ad124012e6de5145e9b4788f520d8f0f86f812a 100644 (file)
@@ -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) {
index 379a3238acb7b22faefbf849b1343f6b4613a34f..3fe918adec45a6e61f6a8c1476c0da17c36ab0b6 100644 (file)
@@ -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"