This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Disable generation of SFTs and adjust testsuite accordingly


This patch disables generating SFTs by default and adjusts a few testcases
for this.  This is to let us see now where this makes a difference
(and thus the alias oracles need to be improved or their use spreaded).
Previous testing of this patch on SPEC2000 showed increased performance
without SFTs, possibly related to partitioning oddities especially with
SFTs.  Disabling SFTs should also address some of the compile-time
bugreports that are still open.

Bootstrapped and tested on x86_64-unknown-linux-gnu, ok for mainline?

Thanks,
Richard.

2008-04-15  Richard Guenther  <rguenther@suse.de>

	* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
	to zero, thus disable creation of SFTs.

	* gcc.dg/tree-ssa/salias-1.c: Remove.
	* gcc.dg/tree-ssa/pr26421.c: Adjust pattern.
	* gcc.dg/tree-ssa/alias-15.c: Likewise.
	* gcc.dg/tree-ssa/ssa-lim-3.c: Run at -O2.

Index: params.def
===================================================================
*** params.def	(revision 134313)
--- params.def	(working copy)
*************** DEFPARAM (PARAM_MAX_JUMP_THREAD_DUPLICAT
*** 652,658 ****
  DEFPARAM (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE,
            "max-fields-for-field-sensitive",
  	  "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable",
! 	  100, 0, 0)
  
  DEFPARAM(PARAM_MAX_SCHED_READY_INSNS,
  	 "max-sched-ready-insns",
--- 652,658 ----
  DEFPARAM (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE,
            "max-fields-for-field-sensitive",
  	  "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable",
! 	  0, 0, 0)
  
  DEFPARAM(PARAM_MAX_SCHED_READY_INSNS,
  	 "max-sched-ready-insns",
Index: testsuite/gcc.dg/tree-ssa/salias-1.c
===================================================================
*** testsuite/gcc.dg/tree-ssa/salias-1.c	(revision 134313)
--- testsuite/gcc.dg/tree-ssa/salias-1.c	(working copy)
***************
*** 1,19 ****
- /* { dg-do compile } */
- /* { dg-options "-O2 -fdump-tree-salias" } */
- 
- struct {
-   struct {
-     struct {
- 	int i, j;
-     } c;
-   } b;
- } a;
- 
- int foo(void)
- {
-   a.b.c.i = 0;
-   return a.b.c.j;
- }
- 
- /* { dg-final { scan-tree-dump-times "structure field tag SFT" 2 "salias" } } */
- /* { dg-final { cleanup-tree-dump "salias" } } */
--- 0 ----
Index: testsuite/gcc.dg/tree-ssa/pr26421.c
===================================================================
*** testsuite/gcc.dg/tree-ssa/pr26421.c	(revision 134313)
--- testsuite/gcc.dg/tree-ssa/pr26421.c	(working copy)
*************** int foo(void)
*** 16,20 ****
    return a.i;
  }
  
! /* { dg-final { scan-tree-dump-times "VDEF" 4 "salias" } } */
  /* { dg-final { cleanup-tree-dump "salias" } } */
--- 16,22 ----
    return a.i;
  }
  
! /* Verify the call clobbers all of a.  */
! 
! /* { dg-final { scan-tree-dump-times "VDEF <a_" 2 "salias" } } */
  /* { dg-final { cleanup-tree-dump "salias" } } */
Index: testsuite/gcc.dg/tree-ssa/alias-15.c
===================================================================
*** testsuite/gcc.dg/tree-ssa/alias-15.c	(revision 134313)
--- testsuite/gcc.dg/tree-ssa/alias-15.c	(working copy)
*************** static inline struct X *wrap(struct X *p
*** 11,20 ****
  int test2(void)
  {
    struct X *p = wrap(&m.b);
!   /* Both memory references need to alias the same SFT.  */
    return p->b[3] - m.b.b[3];
  }
  
! /* { dg-final { scan-tree-dump "SFT.5 created for var m offset 128" "salias" } } */
! /* { dg-final { scan-tree-dump-times "VUSE <SFT.5_" 2 "salias" } } */
  /* { dg-final { cleanup-tree-dump "salias" } } */
--- 11,19 ----
  int test2(void)
  {
    struct X *p = wrap(&m.b);
!   /* Both memory references need to alias the same tags.  */
    return p->b[3] - m.b.b[3];
  }
  
! /* { dg-final { scan-tree-dump-times "VUSE <m_.\\\(D\\\)>" 2 "salias" } } */
  /* { dg-final { cleanup-tree-dump "salias" } } */
Index: testsuite/gcc.dg/tree-ssa/ssa-lim-3.c
===================================================================
*** testsuite/gcc.dg/tree-ssa/ssa-lim-3.c	(revision 134313)
--- testsuite/gcc.dg/tree-ssa/ssa-lim-3.c	(working copy)
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O -fdump-tree-lim-details" } */
  
  struct { int x; int y; } global;
  void foo(int n)
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-lim-details" } */
  
  struct { int x; int y; } global;
  void foo(int n)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]