[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