testsuite: Use attribute "noipa" in sibcall tests
authorHans-Peter Nilsson <hp@axis.com>
Tue, 7 Dec 2021 05:18:57 +0000 (06:18 +0100)
committerHans-Peter Nilsson <hp@axis.com>
Wed, 8 Dec 2021 17:50:54 +0000 (18:50 +0100)
...instead of attribute "noinline".

For cris-elf, testsuite/gcc.dg/sibcall-3.c and sibcall-4.c "XPASS",
without sibcalls being implemented.  On inspection, recurser_void2 is
set to be an assembly-level alias for recurser_void1 as in
".set _recurser_void2,_recurser_void1" for both these cases.

IOW, those "__attribute__((noinline))" should be
"__attribute__((noipa))".  The astute reader will notice that I also
adjust test-cases where self-recursion should occur: as mentioned in
sibcall-1.c "self-recursion tail calls are optimized for all targets,
regardless of presence of sibcall patterns".  But, that optimization
happens even with "noipa", as observed by the test-cases still passing
for cris-elf after patching.  Being of a small mind, I like
consistency, but not all the time, so there's hope.

testsuite:
* gcc.dg/sibcall-1.c, gcc.dg/sibcall-10.c,
gcc.dg/sibcall-2.c, gcc.dg/sibcall-3.c,
gcc.dg/sibcall-4.c, gcc.dg/sibcall-9.c: Replace
attribute "noinline" with "noipa".

gcc/testsuite/gcc.dg/sibcall-1.c
gcc/testsuite/gcc.dg/sibcall-10.c
gcc/testsuite/gcc.dg/sibcall-2.c
gcc/testsuite/gcc.dg/sibcall-3.c
gcc/testsuite/gcc.dg/sibcall-4.c
gcc/testsuite/gcc.dg/sibcall-9.c

index 367ee43..f2bd3ad 100644 (file)
@@ -47,7 +47,7 @@ recurser_void (int n)
 
 void *trackpoint;
 
-void __attribute__ ((noinline))
+void __attribute__ ((noipa))
 track (int n)
 {
   char stackpos[1];
index 4ac2ee4..dcb3e6a 100644 (file)
@@ -46,7 +46,7 @@ int main ()
    reasonably sure is to make them have the same contents (regarding the
    n tests).  */
 
-static void __attribute__((noinline)) ATTR
+static void __attribute__((noipa)) ATTR
 recurser_void1 (void)
 {
   if (n == 0 || n == 7 || n == 8)
@@ -58,7 +58,7 @@ recurser_void1 (void)
   recurser_void2 ();
 }
 
-static void __attribute__((noinline)) ATTR
+static void __attribute__((noipa)) ATTR
 recurser_void2 (void)
 {
   if (n == 0 || n == 7 || n == 8)
@@ -73,7 +73,7 @@ recurser_void2 (void)
 
 void *trackpoint;
 
-void __attribute__ ((noinline))
+void __attribute__ ((noipa))
 track ()
 {
   char stackpos[1];
index a626273..0d4df82 100644 (file)
@@ -38,7 +38,7 @@ recurser_void (void)
 
 void *trackpoint;
 
-void __attribute__ ((noinline))
+void __attribute__ ((noipa))
 track ()
 {
   char stackpos[1];
index 9962b64..80555cf 100644 (file)
@@ -40,7 +40,7 @@ int main ()
    reasonably sure is to make them have the same contents (regarding the
    n tests).  */
 
-static void __attribute__((noinline)) ATTR
+static void __attribute__((noipa)) ATTR
 recurser_void1 (int n)
 {
   if (n == 0 || n == 7 || n == 8)
@@ -52,7 +52,7 @@ recurser_void1 (int n)
   recurser_void2 (n + 1);
 }
 
-static void __attribute__((noinline)) ATTR
+static void __attribute__((noipa)) ATTR
 recurser_void2 (int n)
 {
   if (n == 0 || n == 7 || n == 8)
@@ -66,7 +66,7 @@ recurser_void2 (int n)
 
 void *trackpoint;
 
-void __attribute__ ((noinline))
+void __attribute__ ((noipa))
 track (int n)
 {
   char stackpos[1];
index 9ba1d16..97086bb 100644 (file)
@@ -41,7 +41,7 @@ int main ()
    reasonably sure is to make them have the same contents (regarding the
    n tests).  */
 
-static void __attribute__((noinline)) ATTR
+static void __attribute__((noipa)) ATTR
 recurser_void1 (void)
 {
   if (n == 0 || n == 7 || n == 8)
@@ -53,7 +53,7 @@ recurser_void1 (void)
   recurser_void2 ();
 }
 
-static void __attribute__((noinline)) ATTR
+static void __attribute__((noipa)) ATTR
 recurser_void2 (void)
 {
   if (n == 0 || n == 7 || n == 8)
@@ -67,7 +67,7 @@ recurser_void2 (void)
 
 void *trackpoint;
 
-void __attribute__ ((noinline))
+void __attribute__ ((noipa))
 track ()
 {
   char stackpos[1];
index c06acdb..006dc0d 100644 (file)
@@ -45,7 +45,7 @@ int main ()
    reasonably sure is to make them have the same contents (regarding the
    n tests).  */
 
-static void __attribute__((noinline)) ATTR
+static void __attribute__((noipa)) ATTR
 recurser_void1 (int n)
 {
   if (n == 0 || n == 7 || n == 8)
@@ -57,7 +57,7 @@ recurser_void1 (int n)
   recurser_void2 (n + 1);
 }
 
-static void __attribute__((noinline)) ATTR
+static void __attribute__((noipa)) ATTR
 recurser_void2 (int n)
 {
   if (n == 0 || n == 7 || n == 8)
@@ -72,7 +72,7 @@ recurser_void2 (int n)
 
 void *trackpoint;
 
-void __attribute__ ((noinline))
+void __attribute__ ((noipa))
 track (int n)
 {
   char stackpos[1];