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/arm-alignment.c | |
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/arm-alignment.c')
-rw-r--r-- | clang/test/Driver/arm-alignment.c | 31 |
1 files changed, 29 insertions, 2 deletions
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 |