[gcc(refs/users/aoliva/heads/testme)] ipa-sra is mostly disabled by -mlongcall - work around it
Alexandre Oliva
aoliva@gcc.gnu.org
Tue Mar 9 21:47:49 GMT 2021
https://gcc.gnu.org/g:65971d4e677e74d9b2d64677bb62001ca204cb5e
commit 65971d4e677e74d9b2d64677bb62001ca204cb5e
Author: Alexandre Oliva <oliva@adacore.com>
Date: Tue Mar 9 18:43:14 2021 -0300
ipa-sra is mostly disabled by -mlongcall - work around it
Several ipa-sra tests fail because -mlongcall on powerpc is a
TYPE_ATTRIBUTE, and those disable ipa-sra.
This local workaround disables -mlongcall for the failing tests on
powerpc*-*-vxworks*, so they get a chance to run even in kernel mode.
for gcc/testsuite/ChangeLog
* gcc.dg/ipa/ipa-sra-12.c: Add -mno-longcall on ppc*-vxworks*.
* gcc.dg/ipa/ipa-sra-13.c: Likewise.
* gcc.dg/ipa/ipa-sra-15.c: Likewise.
* gcc.dg/ipa/ipa-sra-16.c: Likewise.
* gcc.dg/ipa/ipa-sra-17.c: Likewise.
* gcc.dg/ipa/ipa-sra-18.c: Likewise.
Diff:
---
gcc/testsuite/gcc.dg/ipa/ipa-sra-12.c | 1 +
gcc/testsuite/gcc.dg/ipa/ipa-sra-13.c | 1 +
gcc/testsuite/gcc.dg/ipa/ipa-sra-15.c | 1 +
gcc/testsuite/gcc.dg/ipa/ipa-sra-16.c | 1 +
gcc/testsuite/gcc.dg/ipa/ipa-sra-17.c | 1 +
gcc/testsuite/gcc.dg/ipa/ipa-sra-18.c | 1 +
6 files changed, 6 insertions(+)
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-sra-12.c b/gcc/testsuite/gcc.dg/ipa/ipa-sra-12.c
index 0cc76bde319..0d74c8f52ee 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-12.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-sra-12.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2 -fipa-sra -fdump-ipa-sra" } */
+/* { dg-additional-options "-mno-longcall" { target powerpc*-*-vxworks* } } */
/* Check of a simple and transitive structure split. */
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-sra-13.c b/gcc/testsuite/gcc.dg/ipa/ipa-sra-13.c
index e8751dad67f..66083f040ba 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-13.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-sra-13.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2 -fipa-sra -fdump-ipa-sra" } */
+/* { dg-additional-options "-mno-longcall" { target powerpc*-*-vxworks* } } */
/* Check of a by-reference structure split. */
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-sra-15.c b/gcc/testsuite/gcc.dg/ipa/ipa-sra-15.c
index aa13a94c7c0..98b7ae5d4f1 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-15.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-sra-15.c
@@ -1,5 +1,6 @@
/* { dg-do run } */
/* { dg-options "-O2 -fipa-sra -fdump-ipa-sra" } */
+/* { dg-additional-options "-mno-longcall" { target powerpc*-*-vxworks* } } */
/* Check of a recursive by-reference structure split. The recursive functions
have to be pure right from the start, otherwise the current AA would detect
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-sra-16.c b/gcc/testsuite/gcc.dg/ipa/ipa-sra-16.c
index 2bffe297c74..25f65fe1fc0 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-16.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-sra-16.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fipa-sra -fdump-ipa-sra -fdump-tree-optimized" } */
+/* { dg-additional-options "-mno-longcall" { target powerpc*-*-vxworks* } } */
/* Testing removal of unused parameters in recursive calls. */
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-sra-17.c b/gcc/testsuite/gcc.dg/ipa/ipa-sra-17.c
index 9cb6367b374..eaec0fcf90a 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-17.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-sra-17.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-ipa-sra -fdump-tree-optimized" } */
+/* { dg-additional-options "-mno-longcall" { target powerpc*-*-vxworks* } } */
#define DOIT
#define DONT
diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-sra-18.c b/gcc/testsuite/gcc.dg/ipa/ipa-sra-18.c
index 3217b612231..1435ab228e3 100644
--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-18.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-sra-18.c
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-ipa-sra" } */
+/* { dg-additional-options "-mno-longcall" { target powerpc*-*-vxworks* } } */
struct S
{
More information about the Gcc-cvs
mailing list