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];