diff options
| author | Akira Hatanaka <ahatanaka@apple.com> | 2015-07-28 22:26:45 +0000 |
|---|---|---|
| committer | Akira Hatanaka <ahatanaka@apple.com> | 2015-07-28 22:26:45 +0000 |
| commit | 7651dd8359c70035ee12a3bafdb25062bb3e90a2 (patch) | |
| tree | 9d1cd938bd8f215ef88c15f52951f96af30396d7 /clang/test/Driver | |
| parent | fc6eb071ab86d26ceb4e7e30240b400cc3c1789d (diff) | |
| download | bcm5719-llvm-7651dd8359c70035ee12a3bafdb25062bb3e90a2.tar.gz bcm5719-llvm-7651dd8359c70035ee12a3bafdb25062bb3e90a2.zip | |
[ARM] Pass subtarget feature "+strict-align".
This commit changes the driver to save subtarget feature "+strict-align" to the
IR instead of using backend option "arm-strict-align". This is needed for LTO.
Also, move the logic in ARM backend that was deciding whether strict alignment
should be forced to the front-end.
rdar://problem/21529937
http://reviews.llvm.org/D11472
llvm-svn: 243489
Diffstat (limited to 'clang/test/Driver')
| -rw-r--r-- | clang/test/Driver/apple-kext-mkernel.c | 4 | ||||
| -rw-r--r-- | clang/test/Driver/arm-alignment.c | 31 |
2 files changed, 31 insertions, 4 deletions
diff --git a/clang/test/Driver/apple-kext-mkernel.c b/clang/test/Driver/apple-kext-mkernel.c index 5f4f5224615..9c20cfce4c6 100644 --- a/clang/test/Driver/apple-kext-mkernel.c +++ b/clang/test/Driver/apple-kext-mkernel.c @@ -12,8 +12,8 @@ // RUN: FileCheck --check-prefix=CHECK-ARM < %t %s // CHECK-ARM: "-target-feature" "+long-calls" -// CHECK-ARM: "-backend-option" "-arm-strict-align" -// CHECK-ARM-NOT: "-backend-option" "-arm-strict-align" +// CHECK-ARM: "-target-feature" "+strict-align" +// CHECK-ARM-NOT: "-target-feature" "+strict-align" // CHECK-ARM: "-fno-builtin" // CHECK-ARM: "-fno-rtti" // CHECK-ARM: "-fno-common" diff --git a/clang/test/Driver/arm-alignment.c b/clang/test/Driver/arm-alignment.c index 3fe595143f7..21caf83edb2 100644 --- a/clang/test/Driver/arm-alignment.c +++ b/clang/test/Driver/arm-alignment.c @@ -7,6 +7,18 @@ // RUN: %clang -target arm-none-gnueabi -mno-unaligned-access -munaligned-access -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s +// RUN: %clang -target armv6-apple-darwin -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s + +// RUN: %clang -target armv6-netbsd-eabi -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s + +// RUN: %clang -target armv7-unknown-linux -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s + +// RUN: %clang -target armv7-unknown-nacl-gnueabihf -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-ARM < %t %s + // RUN: %clang -target aarch64-none-gnueabi -munaligned-access -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s @@ -16,7 +28,7 @@ // RUN: %clang -target aarch64-none-gnueabi -mno-unaligned-access -munaligned-access -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s -// CHECK-UNALIGNED-ARM: "-backend-option" "-arm-no-strict-align" +// CHECK-UNALIGNED-ARM-NOT: "-target-feature" "+strict-align" // CHECK-UNALIGNED-AARCH64: "-backend-option" "-aarch64-no-strict-align" @@ -32,6 +44,21 @@ // RUN: %clang -target arm-none-gnueabi -munaligned-access -mstrict-align -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s +// RUN: %clang -target arm-none-gnueabi -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s + +// RUN: %clang -target armv5-apple-darwin -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s + +// RUN: %clang -target armv5t-netbsd-eabi -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s + +// RUN: %clang -target armv6-unknown-linux -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s + +// RUN: %clang -target armv6-unknown-nacl-gnueabihf -### %s 2> %t +// RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s + // RUN: %clang -target aarch64-none-gnueabi -mno-unaligned-access -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s @@ -47,7 +74,7 @@ // RUN: %clang -target aarch64-none-gnueabi -mkernel -mno-unaligned-access -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s -// CHECK-ALIGNED-ARM: "-backend-option" "-arm-strict-align" +// CHECK-ALIGNED-ARM: "-target-feature" "+strict-align" // CHECK-ALIGNED-AARCH64: "-backend-option" "-aarch64-strict-align" // Make sure that v6M cores always trigger the unsupported aligned accesses error |

