2011-06-28 Janis Johnson <janisjo@codesourcery.com>
authorJanis Johnson <janisjo@codesourcery.com>
Tue, 28 Jun 2011 19:33:06 +0000 (19:33 +0000)
committerJanis Johnson <janis@gcc.gnu.org>
Tue, 28 Jun 2011 19:33:06 +0000 (19:33 +0000)
    Tom de Vries  <tom@codesourcery.com>

* lib/target-supports.exp (check_effective_target_arm_nothumb)
(check_effective_target_arm_thumb2): New effective targets.
* gcc.target/arm/ivopts.c: Remove -mthumb/-marm.  Guard object-size
properly.  Clean up temporary files.
* gcc.target/arm/ivopts-2.c: Likewise.
* gcc.target/arm/ivopts-3.c: Likewise.
* gcc.target/arm/ivopts-4.c: Likewise.
* gcc.target/arm/ivopts-5.c: Likewise.
* gcc.target/arm/ivopts-6.c: Remove duplicate of ivopts.c.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r175596

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/ivopts-2.c
gcc/testsuite/gcc.target/arm/ivopts-3.c
gcc/testsuite/gcc.target/arm/ivopts-4.c
gcc/testsuite/gcc.target/arm/ivopts-5.c
gcc/testsuite/gcc.target/arm/ivopts.c
gcc/testsuite/lib/target-supports.exp

index 77a408639ac06b6fa73b10e83e1b5028109ad16b..3139ebafda5f81ecb3a7820a3d722849972e1d9f 100644 (file)
@@ -1,3 +1,16 @@
+2011-06-28  Janis Johnson  <janisjo@codesourcery.com>
+           Tom de Vries  <tom@codesourcery.com>
+
+       * lib/target-supports.exp (check_effective_target_arm_nothumb)
+       (check_effective_target_arm_thumb2): New effective targets.
+       * gcc.target/arm/ivopts.c: Remove -mthumb/-marm.  Guard object-size
+       properly.  Clean up temporary files.
+       * gcc.target/arm/ivopts-2.c: Likewise.
+       * gcc.target/arm/ivopts-3.c: Likewise.
+       * gcc.target/arm/ivopts-4.c: Likewise.
+       * gcc.target/arm/ivopts-5.c: Likewise.
+       * gcc.target/arm/ivopts-6.c: Remove duplicate of ivopts.c.
+
 2011-06-28  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/49479
index 4aba3cfb75ca7326473afdc81373e1de9d484023..2cf6372301118b7b673e464d1b46290724618f95 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do assemble } */
-/* { dg-options "-Os -mthumb -fdump-tree-ivopts -save-temps" } */
+/* { dg-options "-Os -fdump-tree-ivopts -save-temps" } */
 
 extern void foo2 (short*);
 
@@ -14,5 +14,6 @@ tr4 (short array[], int n)
 
 /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times "PHI <" 1 "ivopts"} } */
-/* { dg-final { object-size text <= 26 { target arm_thumb2_ok } } } */
+/* { dg-final { object-size text <= 26 { target arm_thumb2 } } } */
 /* { dg-final { cleanup-tree-dump "ivopts" } } */
+/* { dg-final { cleanup-saved-temps "ivopts" } } */
index a2e7f76c9e513e2096c4cc079bd710e9c08f0879..11d9aac80f290d15a73d64e35eb5440c15300a5b 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do assemble } */
-/* { dg-options "-Os -mthumb -fdump-tree-ivopts -save-temps" } */
+/* { dg-options "-Os -fdump-tree-ivopts -save-temps" } */
 
 extern unsigned int foo2 (short*) __attribute__((pure));
 
@@ -16,5 +16,6 @@ tr3 (short array[], unsigned int n)
 /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */
-/* { dg-final { object-size text <= 30 { target arm_thumb2_ok } } } */
+/* { dg-final { object-size text <= 30 { target arm_thumb2 } } } */
 /* { dg-final { cleanup-tree-dump "ivopts" } } */
+/* { dg-final { cleanup-saved-temps "ivopts" } } */
index 8ae0518bdb60b379afd27925cf8c3a969075229a..0c476b874f4ade0c3eb3ded6db3218cd1adfada5 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do assemble } */
-/* { dg-options "-mthumb -Os -fdump-tree-ivopts -save-temps" } */
+/* { dg-options "-Os -fdump-tree-ivopts -save-temps" } */
 
 extern unsigned int foo (int*) __attribute__((pure));
 
@@ -17,5 +17,6 @@ tr2 (int array[], int n)
 /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */
-/* { dg-final { object-size text <= 36 { target arm_thumb2_ok } } } */
+/* { dg-final { object-size text <= 36 { target arm_thumb2 } } } */
 /* { dg-final { cleanup-tree-dump "ivopts" } } */
+/* { dg-final { cleanup-saved-temps "ivopts" } } */
index 5624872559f378e6748e726b2ad58353d0f4242e..0f9023808e6b88895dfed4f8177d8c5f60ed4392 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do assemble } */
-/* { dg-options "-Os -mthumb -fdump-tree-ivopts -save-temps" } */
+/* { dg-options "-Os -fdump-tree-ivopts -save-temps" } */
 
 extern unsigned int foo (int*) __attribute__((pure));
 
@@ -16,5 +16,6 @@ tr1 (int array[], unsigned int n)
 /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */
-/* { dg-final { object-size text <= 30 { target arm_thumb2_ok } } } */
+/* { dg-final { object-size text <= 30 { target arm_thumb2 } } } */
 /* { dg-final { cleanup-tree-dump "ivopts" } } */
+/* { dg-final { cleanup-saved-temps "ivopts" } } */
index 2d67e0a0b7e56c18ac4a2d780d2d149f13772c39..8183d1d5f78a21ab3ec3c64b1fddfd94887c12a2 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do assemble } */
-/* { dg-options "-Os -mthumb -fdump-tree-ivopts -save-temps" } */
+/* { dg-options "-Os -fdump-tree-ivopts -save-temps" } */
 
 void
 tr5 (short array[], int n)
@@ -11,5 +11,8 @@ tr5 (short array[], int n)
 }
 
 /* { dg-final { scan-tree-dump-times "PHI <" 1 "ivopts"} } */
-/* { dg-final { object-size text <= 20 { target arm_thumb2_ok } } } */
+/* { dg-final { object-size text <= 20 { target arm_thumb2 } } } */
+/* { dg-final { object-size text <= 32 { target { arm_nothumb && { ! arm_iwmmxt_ok } } } } } */
+/* { dg-final { object-size text <= 36 { target { arm_nothumb && arm_iwmmxt_ok }  } } } */
 /* { dg-final { cleanup-tree-dump "ivopts" } } */
+/* { dg-final { cleanup-saved-temps "ivopts" } } */
index 8a0e36ff35f0d49471b600eb1f5b3b9225bca2c1..393c3ade82e7e809d0327b6f0993e4a68ff4d5cc 100644 (file)
@@ -1862,6 +1862,15 @@ proc check_effective_target_arm32 { } {
     }]
 }
 
+# Return 1 is this is an arm target not using Thumb
+proc check_effective_target_arm_nothumb { } {
+    return [check_no_compiler_messages arm_nothumb assembly {
+       #if (defined(__thumb__) || defined(__thumb2__))
+       #error FOO
+       #endif
+    }]
+}
+
 # Return 1 if this is an ARM target that only supports aligned vector accesses
 proc check_effective_target_arm_vect_no_misalign { } {
     return [check_no_compiler_messages arm_vect_no_misalign assembly {
@@ -2018,6 +2027,16 @@ proc check_effective_target_arm_thumb2_ok { } {
     } "-mthumb"]
 }
 
+# Return 1 is this is an ARM target where is Thumb-2 used.
+
+proc check_effective_target_arm_thumb2 { } {
+    return [check_no_compiler_messages arm_thumb2 assembly {
+       #if !defined(__thumb2__)
+       #error FOO
+       #endif
+    } ""]
+}
+
 # Return 1 if the target supports executing NEON instructions, 0
 # otherwise.  Cache the result.