testsuite: Use attribute "noipa" in sibcall tests

Message ID 20211207141847.3E9C2203B3@pchp3.se.axis.com
State Committed
Commit 60147c2b7d987f6142bdc1d2ae83e091fc6a5a45
Headers
Series testsuite: Use attribute "noipa" in sibcall tests |

Commit Message

Hans-Peter Nilsson Dec. 7, 2021, 2:18 p.m. UTC
  ...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.

Now, editing test-cases is usually frowned upon, but I have
it from authoritative sources that the intent was as
patched.  Ok to commit?

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".

Change-Id: I001030b314883170e6ff7d77e38ed0c7b57fecec
---
 gcc/testsuite/gcc.dg/sibcall-1.c  | 2 +-
 gcc/testsuite/gcc.dg/sibcall-10.c | 6 +++---
 gcc/testsuite/gcc.dg/sibcall-2.c  | 2 +-
 gcc/testsuite/gcc.dg/sibcall-3.c  | 6 +++---
 gcc/testsuite/gcc.dg/sibcall-4.c  | 6 +++---
 gcc/testsuite/gcc.dg/sibcall-9.c  | 6 +++---
 6 files changed, 14 insertions(+), 14 deletions(-)
  

Comments

Richard Sandiford Dec. 8, 2021, 1:27 p.m. UTC | #1
Hans-Peter Nilsson via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> ...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.
>
> Now, editing test-cases is usually frowned upon, but I have
> it from authoritative sources that the intent was as
> patched.  Ok to commit?
>
> 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".

OK, thanks.

Richard

> Change-Id: I001030b314883170e6ff7d77e38ed0c7b57fecec
> ---
>  gcc/testsuite/gcc.dg/sibcall-1.c  | 2 +-
>  gcc/testsuite/gcc.dg/sibcall-10.c | 6 +++---
>  gcc/testsuite/gcc.dg/sibcall-2.c  | 2 +-
>  gcc/testsuite/gcc.dg/sibcall-3.c  | 6 +++---
>  gcc/testsuite/gcc.dg/sibcall-4.c  | 6 +++---
>  gcc/testsuite/gcc.dg/sibcall-9.c  | 6 +++---
>  6 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.dg/sibcall-1.c b/gcc/testsuite/gcc.dg/sibcall-1.c
> index 367ee4374e16..f2bd3ade2176 100644
> --- a/gcc/testsuite/gcc.dg/sibcall-1.c
> +++ b/gcc/testsuite/gcc.dg/sibcall-1.c
> @@ -47,7 +47,7 @@ recurser_void (int n)
>  
>  void *trackpoint;
>  
> -void __attribute__ ((noinline))
> +void __attribute__ ((noipa))
>  track (int n)
>  {
>    char stackpos[1];
> diff --git a/gcc/testsuite/gcc.dg/sibcall-10.c b/gcc/testsuite/gcc.dg/sibcall-10.c
> index d6668dc748da..f692869a99e6 100644
> --- a/gcc/testsuite/gcc.dg/sibcall-10.c
> +++ b/gcc/testsuite/gcc.dg/sibcall-10.c
> @@ -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];
> diff --git a/gcc/testsuite/gcc.dg/sibcall-2.c b/gcc/testsuite/gcc.dg/sibcall-2.c
> index a626273e6200..0d4df82b0ca4 100644
> --- a/gcc/testsuite/gcc.dg/sibcall-2.c
> +++ b/gcc/testsuite/gcc.dg/sibcall-2.c
> @@ -38,7 +38,7 @@ recurser_void (void)
>  
>  void *trackpoint;
>  
> -void __attribute__ ((noinline))
> +void __attribute__ ((noipa))
>  track ()
>  {
>    char stackpos[1];
> diff --git a/gcc/testsuite/gcc.dg/sibcall-3.c b/gcc/testsuite/gcc.dg/sibcall-3.c
> index 77227824827a..8f6e776937a8 100644
> --- a/gcc/testsuite/gcc.dg/sibcall-3.c
> +++ b/gcc/testsuite/gcc.dg/sibcall-3.c
> @@ -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];
> diff --git a/gcc/testsuite/gcc.dg/sibcall-4.c b/gcc/testsuite/gcc.dg/sibcall-4.c
> index 7fa51cab0dcb..a587c7254959 100644
> --- a/gcc/testsuite/gcc.dg/sibcall-4.c
> +++ b/gcc/testsuite/gcc.dg/sibcall-4.c
> @@ -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];
> diff --git a/gcc/testsuite/gcc.dg/sibcall-9.c b/gcc/testsuite/gcc.dg/sibcall-9.c
> index 0bf8f38ee5ce..40262c7a7e14 100644
> --- a/gcc/testsuite/gcc.dg/sibcall-9.c
> +++ b/gcc/testsuite/gcc.dg/sibcall-9.c
> @@ -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];
  

Patch

diff --git a/gcc/testsuite/gcc.dg/sibcall-1.c b/gcc/testsuite/gcc.dg/sibcall-1.c
index 367ee4374e16..f2bd3ade2176 100644
--- a/gcc/testsuite/gcc.dg/sibcall-1.c
+++ b/gcc/testsuite/gcc.dg/sibcall-1.c
@@ -47,7 +47,7 @@  recurser_void (int n)
 
 void *trackpoint;
 
-void __attribute__ ((noinline))
+void __attribute__ ((noipa))
 track (int n)
 {
   char stackpos[1];
diff --git a/gcc/testsuite/gcc.dg/sibcall-10.c b/gcc/testsuite/gcc.dg/sibcall-10.c
index d6668dc748da..f692869a99e6 100644
--- a/gcc/testsuite/gcc.dg/sibcall-10.c
+++ b/gcc/testsuite/gcc.dg/sibcall-10.c
@@ -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];
diff --git a/gcc/testsuite/gcc.dg/sibcall-2.c b/gcc/testsuite/gcc.dg/sibcall-2.c
index a626273e6200..0d4df82b0ca4 100644
--- a/gcc/testsuite/gcc.dg/sibcall-2.c
+++ b/gcc/testsuite/gcc.dg/sibcall-2.c
@@ -38,7 +38,7 @@  recurser_void (void)
 
 void *trackpoint;
 
-void __attribute__ ((noinline))
+void __attribute__ ((noipa))
 track ()
 {
   char stackpos[1];
diff --git a/gcc/testsuite/gcc.dg/sibcall-3.c b/gcc/testsuite/gcc.dg/sibcall-3.c
index 77227824827a..8f6e776937a8 100644
--- a/gcc/testsuite/gcc.dg/sibcall-3.c
+++ b/gcc/testsuite/gcc.dg/sibcall-3.c
@@ -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];
diff --git a/gcc/testsuite/gcc.dg/sibcall-4.c b/gcc/testsuite/gcc.dg/sibcall-4.c
index 7fa51cab0dcb..a587c7254959 100644
--- a/gcc/testsuite/gcc.dg/sibcall-4.c
+++ b/gcc/testsuite/gcc.dg/sibcall-4.c
@@ -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];
diff --git a/gcc/testsuite/gcc.dg/sibcall-9.c b/gcc/testsuite/gcc.dg/sibcall-9.c
index 0bf8f38ee5ce..40262c7a7e14 100644
--- a/gcc/testsuite/gcc.dg/sibcall-9.c
+++ b/gcc/testsuite/gcc.dg/sibcall-9.c
@@ -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];