More noinline marks

Jan Hubicka hubicka@ucw.cz
Fri May 15 17:01:00 GMT 2009


Hi,
more of noinline markers.  These are mostly for i386 alignment hack on runtimes
not honoring 64bit stack alignment.  I think we don't need these anymore,
because we do dynamic stack alignment correctly now, but the problem is just
fact that when extra function gets inlined, it confuses pattern matching the
testcases.  I also had to disable early inlining for ipa-4.c as the function
expected to be cloned by ipa-cp are too small otherwise.

Regtested x86_64-linux, will commit it shortly.

	* gcc.target/i386/align-main-1.c (check): Mark noinline.
	* gcc.target/i386/align-main-2.c (check): Mark noinline.
	* gcc.dg/ipa/ipa-4.c: Disable early inlining.
	* gcc.dg/vect/vect-iv-10.c (main1): Mark noinline.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-33.c (main1): Mark noinline.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c (main1): Mark noinline.
	* gcc.dg/vect/pr31699.c (foo): Mark noinline.
	* gcc.dg/vect/pr18400.c (main1): Mark noinline.
Index: gcc.target/i386/align-main-1.c
===================================================================
*** gcc.target/i386/align-main-1.c	(revision 147584)
--- gcc.target/i386/align-main-1.c	(working copy)
***************
*** 11,16 ****
--- 11,17 ----
  typedef int aligned __attribute__((aligned(ALIGNMENT)));
  extern void abort(void);
  
+ __attribute__ ((noinline))
  void check(void * a)
  {
    if (((ptrdiff_t)a & (ALIGNMENT-1)) != 0)
Index: gcc.target/i386/align-main-2.c
===================================================================
*** gcc.target/i386/align-main-2.c	(revision 147584)
--- gcc.target/i386/align-main-2.c	(working copy)
***************
*** 11,16 ****
--- 11,17 ----
  typedef int aligned __attribute__((aligned(ALIGNMENT)));
  extern void abort(void);
  
+ __attribute__ ((noinline))
  void check(void * a)
  {
    if (((ptrdiff_t)a & (ALIGNMENT-1)) != 0)
Index: gcc.dg/ipa/ipa-4.c
===================================================================
*** gcc.dg/ipa/ipa-4.c	(revision 147584)
--- gcc.dg/ipa/ipa-4.c	(working copy)
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp"  } */
  /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
  
  #include <stdio.h>
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining"  } */
  /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
  
  #include <stdio.h>
Index: gcc.dg/vect/vect-iv-10.c
===================================================================
*** gcc.dg/vect/vect-iv-10.c	(revision 147584)
--- gcc.dg/vect/vect-iv-10.c	(working copy)
***************
*** 5,10 ****
--- 5,11 ----
  
  #define N 16
  
+ __attribute__ ((noinline))
  int main1 ()
  {
    int i,j;
Index: gcc.dg/vect/costmodel/i386/costmodel-vect-33.c
===================================================================
*** gcc.dg/vect/costmodel/i386/costmodel-vect-33.c	(revision 147584)
--- gcc.dg/vect/costmodel/i386/costmodel-vect-33.c	(working copy)
*************** struct test {
*** 11,16 ****
--- 11,17 ----
  
  extern struct test s;
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i;
Index: gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c
===================================================================
*** gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c	(revision 147584)
--- gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c	(working copy)
*************** struct test {
*** 11,16 ****
--- 11,17 ----
  
  extern struct test s;
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i;
Index: gcc.dg/vect/pr31699.c
===================================================================
*** gcc.dg/vect/pr31699.c	(revision 147584)
--- gcc.dg/vect/pr31699.c	(working copy)
***************
*** 6,11 ****
--- 6,12 ----
  
  float x[256];
  
+ __attribute__ ((noinline))
  void foo(void)
  {
   double *z = malloc (sizeof(double) * 256);
Index: gcc.dg/vect/pr18400.c
===================================================================
*** gcc.dg/vect/pr18400.c	(revision 147584)
--- gcc.dg/vect/pr18400.c	(working copy)
***************
*** 8,13 ****
--- 8,14 ----
  int b[N] = {0,3,6,9,12,15,18,21};
  int a[N];
   
+ __attribute__ ((noinline))
  int main1 ()
  {  
    int i;



More information about the Gcc-patches mailing list