[PATCH][2/2] Remove salias pass stub and unused params

Richard Guenther rguenther@suse.de
Fri May 9 09:35:00 GMT 2008


This finally removes the (now stub) salias pass and the associated
options / params that were controlling SFTs.  The build_alias pass
is now always building alias info via its only effect, TODO_rebuild_alias.
I renamed it to alias (like it were named in 4.2 times) and adjusted
the testcases we have accordingly.  -f[no]-tree-salias is kept for
backward compatibility.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk.

Richard.

2008-05-08  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi (-fdump-tree-salias): Remove documentation.
	(-ftree-salias): Likewise.
	(salias-max-implicit-fields): Remove param documentation.
	(salias-max-array-elements): Likewise.
	* tree-pass.h (pass_create_structure_vars): Remove.
	* params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
	(SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
	* tree-ssa-alias.c (create_structure_vars): Remove.
	(gate_structure_vars): Likewise.
	(pass_create_structure_vars): Likewise.
	(gate_build_alias): Likewise.
	(pass_build_alias): Adjust to run always and dump the function.
	* common.opt (ftree-salias): Hide.
	* passes.c (init_optimization_passes): Remove
	pass_create_structure_vars, adjust comment.
	* params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
	(PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
	* opts.c (decode_options): Do not set flag_tree_salias.
	(common_handle_option): Add OPT_ftree_salias to the backward
	compatibility section.

	* gcc.dg/tree-ssa/20040911-1.c: Adjust.
	* gcc.dg/tree-ssa/20040517-1.c: Likewise.
	* gcc.dg/tree-ssa/pr26421.c: Likewise.
	* gcc.dg/tree-ssa/pr23382.c: Likewise.
	* gcc.dg/tree-ssa/alias-15.c: Likewise.
	* gcc.dg/tree-ssa/inline_asm-1.c: Likewise.
	* gcc.dg/tree-ssa/inline_asm-2.c: Likewise.
	* gcc.dg/tree-ssa/pta-fp.c: Likewise.
	* gcc.dg/tree-ssa/20031015-1.c: Likewise.
	* gcc.dg/tree-ssa/alias-12.c: Likewise.


Index: gcc/doc/invoke.texi
===================================================================
*** gcc/doc/invoke.texi.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/doc/invoke.texi	2008-05-08 17:06:28.000000000 +0200
*************** Objective-C and Objective-C++ Dialects}.
*** 292,298 ****
  -fdump-tree-nrv -fdump-tree-vect @gol
  -fdump-tree-sink @gol
  -fdump-tree-sra@r{[}-@var{n}@r{]} @gol
- -fdump-tree-salias @gol
  -fdump-tree-fre@r{[}-@var{n}@r{]} @gol
  -fdump-tree-vrp@r{[}-@var{n}@r{]} @gol
  -ftree-vectorizer-verbose=@var{n} @gol
--- 292,297 ----
*************** Objective-C and Objective-C++ Dialects}.
*** 357,363 ****
  -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im @gol
  -ftree-loop-distribution @gol
  -ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize @gol
! -ftree-parallelize-loops=@var{n} -ftree-pre -ftree-reassoc -ftree-salias @gol
  -ftree-sink -ftree-sra -ftree-store-ccp -ftree-ter @gol
  -ftree-vect-loop-version -ftree-vectorize -ftree-vrp -funit-at-a-time @gol
  -funroll-all-loops -funroll-loops -funsafe-loop-optimizations @gol
--- 356,362 ----
  -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im @gol
  -ftree-loop-distribution @gol
  -ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize @gol
! -ftree-parallelize-loops=@var{n} -ftree-pre -ftree-reassoc @gol
  -ftree-sink -ftree-sra -ftree-store-ccp -ftree-ter @gol
  -ftree-vect-loop-version -ftree-vectorize -ftree-vrp -funit-at-a-time @gol
  -funroll-all-loops -funroll-loops -funsafe-loop-optimizations @gol
*************** appending @file{.ch} to the source file 
*** 4796,4806 ****
  Dump SSA related information to a file.  The file name is made by appending
  @file{.ssa} to the source file name.
  
- @item salias
- @opindex fdump-tree-salias
- Dump structure aliasing variable information to a file.  This file name
- is made by appending @file{.salias} to the source file name.
- 
  @item alias
  @opindex fdump-tree-alias
  Dump aliasing information for each function.  The file name is made by
--- 4795,4800 ----
*************** Perform copy propagation on trees.  This
*** 5784,5794 ****
  copy operations.  This flag is enabled by default at @option{-O} and
  higher.
  
- @item -ftree-salias
- @opindex ftree-salias
- Perform structural alias analysis on trees.  This flag
- is enabled by default at @option{-O} and higher.
- 
  @item -fipa-pure-const
  @opindex fipa-pure-const
  Discover which functions are pure or constant.
--- 5778,5783 ----
*************** In each case, the @var{value} is an inte
*** 6792,6806 ****
  @var{name} are given in the following table:
  
  @table @gcctabopt
- @item salias-max-implicit-fields
- The maximum number of fields in a variable without direct
- structure accesses for which structure aliasing will consider trying
- to track each field.  The default is 5
- 
- @item salias-max-array-elements
- The maximum number of elements an array can have and its elements
- still be tracked individually by structure aliasing. The default is 4
- 
  @item sra-max-structure-size
  The maximum structure size, in bytes, at which the scalar replacement
  of aggregates (SRA) optimization will perform block copies.  The
--- 6781,6786 ----
Index: gcc/tree-pass.h
===================================================================
*** gcc/tree-pass.h.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/tree-pass.h	2008-05-08 17:06:28.000000000 +0200
*************** extern struct gimple_opt_pass pass_check
*** 374,380 ****
  extern struct gimple_opt_pass pass_copy_prop;
  extern struct gimple_opt_pass pass_store_ccp;
  extern struct gimple_opt_pass pass_vrp;
- extern struct gimple_opt_pass pass_create_structure_vars;
  extern struct gimple_opt_pass pass_uncprop;
  extern struct gimple_opt_pass pass_return_slot;
  extern struct gimple_opt_pass pass_reassoc;
--- 374,379 ----
Index: gcc/params.h
===================================================================
*** gcc/params.h.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/params.h	2008-05-08 17:06:28.000000000 +0200
*************** typedef enum compiler_param
*** 93,102 ****
    (compiler_params[(int) ENUM].set)
  
  /* Macros for the various parameters.  */
- #define SALIAS_MAX_IMPLICIT_FIELDS \
-   PARAM_VALUE (PARAM_SALIAS_MAX_IMPLICIT_FIELDS)
- #define SALIAS_MAX_ARRAY_ELEMENTS \
-   PARAM_VALUE (PARAM_SALIAS_MAX_ARRAY_ELEMENTS)
  #define SRA_MAX_STRUCTURE_SIZE \
    PARAM_VALUE (PARAM_SRA_MAX_STRUCTURE_SIZE)
  #define SRA_MAX_STRUCTURE_COUNT \
--- 93,98 ----
Index: gcc/testsuite/gcc.dg/tree-ssa/20040911-1.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/20040911-1.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/20040911-1.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,7 ****
  /* Verify that points-to information is handled properly for PTR + OFFSET
     pointer arithmetics.  */
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-salias-vops" } */
  
  char buf[4], *q;
  int foo (int i)
--- 1,7 ----
  /* Verify that points-to information is handled properly for PTR + OFFSET
     pointer arithmetics.  */
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-alias-vops" } */
  
  char buf[4], *q;
  int foo (int i)
*************** int foo (int i)
*** 18,22 ****
    return *p;
  }
  
! /* { dg-final { scan-tree-dump-not "VUSE <c" "salias" } } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
--- 18,22 ----
    return *p;
  }
  
! /* { dg-final { scan-tree-dump-not "VUSE <c" "alias" } } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-salias-vops" } */
  extern void abort (void);
  int a; 
   
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-alias-vops" } */
  extern void abort (void);
  int a; 
   
*************** void bar (void) 
*** 17,21 ****
     malloc functions may clobber global memory.  Only the function result
     does not alias any other pointer.
     Hence, we must have a VDEF for a before and after the call to foo().  */
! /* { dg-final { scan-tree-dump-times "VDEF" 2 "salias"} } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
--- 17,21 ----
     malloc functions may clobber global memory.  Only the function result
     does not alias any other pointer.
     Hence, we must have a VDEF for a before and after the call to foo().  */
! /* { dg-final { scan-tree-dump-times "VDEF" 2 "alias"} } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/pr26421.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/pr26421.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/pr26421.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-salias-vops" } */
  
  typedef struct {
    int i;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-alias-vops" } */
  
  typedef struct {
    int i;
*************** int foo(void)
*** 18,22 ****
  
  /* Verify the call clobbers all of a.  */
  
! /* { dg-final { scan-tree-dump-times "VDEF <a_" 2 "salias" } } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
--- 18,22 ----
  
  /* Verify the call clobbers all of a.  */
  
! /* { dg-final { scan-tree-dump-times "VDEF <a_" 2 "alias" } } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/pr23382.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/pr23382.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-salias-vops" } */
  struct a
  {
    int length;
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-alias-vops" } */
  struct a
  {
    int length;
*************** int f(void)
*** 13,17 ****
     struct a *a = malloc(sizeof(struct a));
     return a->length;
  }
! /* { dg-final { scan-tree-dump-times "VDEF <HEAP" 1 "salias"} } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
--- 13,17 ----
     struct a *a = malloc(sizeof(struct a));
     return a->length;
  }
! /* { dg-final { scan-tree-dump-times "VDEF <HEAP" 1 "alias"} } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/alias-15.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/alias-15.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/alias-15.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O -fno-early-inlining -fdump-tree-salias-vops-details" } */
  
  struct foo {
    int a;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O -fno-early-inlining -fdump-tree-alias-vops-details" } */
  
  struct foo {
    int a;
*************** int test2(void)
*** 15,19 ****
    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" } } */
--- 15,19 ----
    return p->b[3] - m.b.b[3];
  }
  
! /* { dg-final { scan-tree-dump-times "VUSE <m_.\\\(D\\\)>" 2 "alias" } } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,6 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-salias-vops" } */
! /* Test to make sure that inline-asm causes a V_MAY_DEF and that we call test_function twice. */
  
  char test_function(void ) __attribute__((__pure__));
  char f(char *a)
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-alias-vops" } */
! /* Test to make sure that inline-asm causes a VDEF and that we call test_function twice. */
  
  char test_function(void ) __attribute__((__pure__));
  char f(char *a)
*************** char f(char *a)
*** 16,20 ****
  /* { dg-final { cleanup-tree-dump "optimized" } } */
  
  /* There should a VDEF for the inline-asm.  */
! /* { dg-final { scan-tree-dump-times "VDEF" 1 "salias"} } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
--- 16,20 ----
  /* { dg-final { cleanup-tree-dump "optimized" } } */
  
  /* There should a VDEF for the inline-asm.  */
! /* { dg-final { scan-tree-dump-times "VDEF" 1 "alias"} } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,6 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-salias-vops" } */
! /* Test to make sure that inline-asm causes a V_MAY_DEF. */
  
  
  void link_error();
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-alias-vops" } */
! /* Test to make sure that inline-asm causes a VDEF. */
  
  
  void link_error();
*************** void f(char *a)
*** 14,18 ****
  }
  
  /* There should a VDEF for the inline-asm and one for the link_error.  */
! /* { dg-final { scan-tree-dump-times "VDEF" 2 "salias"} } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
--- 14,18 ----
  }
  
  /* There should a VDEF for the inline-asm and one for the link_error.  */
! /* { dg-final { scan-tree-dump-times "VDEF" 2 "alias"} } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-salias" } */
  extern double cos (double);
  extern double sin (double);
  double f(double a)
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-alias" } */
  extern double cos (double);
  extern double sin (double);
  double f(double a)
*************** double f(double a)
*** 22,26 ****
  }
  /* The points-to set of the final function pointer should be "sin cos" */
  
! /* { dg-final { scan-tree-dump-times "{ sin cos }" 1 "salias"} } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
--- 22,26 ----
  }
  /* The points-to set of the final function pointer should be "sin cos" */
  
! /* { dg-final { scan-tree-dump-times "{ sin cos }" 1 "alias"} } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/20031015-1.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/20031015-1.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/20031015-1.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,7 ****
  /* With tree-ssa, gcc.dg/20000724-1.c failed because we missed
     a VOP of x in the asm statement.  */
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-salias-vops" } */
  
  struct s { int a; };
  
--- 1,7 ----
  /* With tree-ssa, gcc.dg/20000724-1.c failed because we missed
     a VOP of x in the asm statement.  */
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-alias-vops" } */
  
  struct s { int a; };
  
*************** main(void)
*** 14,18 ****
  }
  
  /* The VDEF comes from the initial assignment and the asm.  */
! /* { dg-final { scan-tree-dump-times "DEF" 2 "salias" } } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
--- 14,18 ----
  }
  
  /* The VDEF comes from the initial assignment and the asm.  */
! /* { dg-final { scan-tree-dump-times "DEF" 2 "alias" } } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/alias-12.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/alias-12.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/alias-12.c	2008-05-08 17:06:28.000000000 +0200
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-salias-vops" } */
  
  struct {
  	int i;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-alias-vops" } */
  
  struct {
  	int i;
*************** int foo(int i)
*** 13,18 ****
  	return a.x[i];
  }
  
! /* { dg-final { scan-tree-dump "VDEF" "salias" } } */
! /* { dg-final { cleanup-tree-dump "salias" } } */
  
--- 13,18 ----
  	return a.x[i];
  }
  
! /* { dg-final { scan-tree-dump "VDEF" "alias" } } */
! /* { dg-final { cleanup-tree-dump "alias" } } */
  
Index: gcc/tree-ssa-alias.c
===================================================================
*** gcc/tree-ssa-alias.c.orig	2008-05-08 15:25:46.000000000 +0200
--- gcc/tree-ssa-alias.c	2008-05-08 17:11:37.000000000 +0200
*************** new_type_alias (tree ptr, tree var, tree
*** 3438,3475 ****
    MTAG_GLOBAL (tag) = is_global_var (var);
  }
  
- /* ???  Stub.  */
- 
- static unsigned int
- create_structure_vars (void)
- {
-   return TODO_rebuild_alias;
- }
- 
- static bool
- gate_structure_vars (void)
- {
-   return flag_tree_salias != 0;
- }
- 
- struct gimple_opt_pass pass_create_structure_vars = 
- {
-  {
-   GIMPLE_PASS,
-   "salias",		 /* name */
-   gate_structure_vars,	 /* gate */
-   create_structure_vars, /* execute */
-   NULL,			 /* sub */
-   NULL,			 /* next */
-   0,			 /* static_pass_number */
-   0,			 /* tv_id */
-   PROP_cfg,		 /* properties_required */
-   0,			 /* properties_provided */
-   0,			 /* properties_destroyed */
-   0,			 /* todo_flags_start */
-   TODO_dump_func	 /* todo_flags_finish */
-  }
- };
  
  /* Reset the call_clobbered flags on our referenced vars.  In
     theory, this only needs to be done for globals.  */
--- 3438,3443 ----
*************** struct gimple_opt_pass pass_reset_cc_fla
*** 3504,3522 ****
   }
  };
  
- static bool
- gate_build_alias (void)
- {
-   return !gate_structure_vars();
- }
  
  
  struct gimple_opt_pass pass_build_alias =
  {
   {
    GIMPLE_PASS,
!   "build_alias",            /* name */
!   gate_build_alias,         /* gate */
    NULL,                     /* execute */
    NULL,                     /* sub */
    NULL,                     /* next */
--- 3472,3486 ----
   }
  };
  
  
+ /* A dummy pass to cause aliases to be computed via TODO_rebuild_alias.  */
  
  struct gimple_opt_pass pass_build_alias =
  {
   {
    GIMPLE_PASS,
!   "alias",		    /* name */
!   NULL,			    /* gate */
    NULL,                     /* execute */
    NULL,                     /* sub */
    NULL,                     /* next */
*************** struct gimple_opt_pass pass_build_alias 
*** 3526,3531 ****
    PROP_alias,               /* properties_provided */
    0,                        /* properties_destroyed */
    0,                        /* todo_flags_start */
!   TODO_rebuild_alias        /* todo_flags_finish */
   }
  };
--- 3490,3495 ----
    PROP_alias,               /* properties_provided */
    0,                        /* properties_destroyed */
    0,                        /* todo_flags_start */
!   TODO_rebuild_alias | TODO_dump_func  /* todo_flags_finish */
   }
  };
Index: gcc/common.opt
===================================================================
*** gcc/common.opt.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/common.opt	2008-05-08 17:06:28.000000000 +0200
*************** Common Report Var(flag_tree_reassoc) Ini
*** 1148,1155 ****
  Enable reassociation on tree level
  
  ftree-salias
! Common Report Var(flag_tree_salias) Optimization
! Perform structural alias analysis
  
  ftree-sink
  Common Report Var(flag_tree_sink) Optimization
--- 1148,1155 ----
  Enable reassociation on tree level
  
  ftree-salias
! Common
! Does nothing.  Preserved for backward compatibility.
  
  ftree-sink
  Common Report Var(flag_tree_sink) Optimization
Index: gcc/passes.c
===================================================================
*** gcc/passes.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/passes.c	2008-05-08 17:06:28.000000000 +0200
*************** init_optimization_passes (void)
*** 557,566 ****
    NEXT_PASS (pass_all_optimizations);
      {
        struct opt_pass **p = &pass_all_optimizations.pass.sub;
!       NEXT_PASS (pass_create_structure_vars);
!       /* ??? pass_build_alias is a dummy pass that ensures that we
! 	 execute TODO_rebuild_alias at this point even if
! 	 pass_create_structure_vars was disabled.  */
        NEXT_PASS (pass_build_alias);
        NEXT_PASS (pass_return_slot);
        NEXT_PASS (pass_rename_ssa_copies);
--- 557,564 ----
    NEXT_PASS (pass_all_optimizations);
      {
        struct opt_pass **p = &pass_all_optimizations.pass.sub;
!       /* pass_build_alias is a dummy pass that ensures that we
! 	 execute TODO_rebuild_alias at this point.  */
        NEXT_PASS (pass_build_alias);
        NEXT_PASS (pass_return_slot);
        NEXT_PASS (pass_rename_ssa_copies);
Index: gcc/params.def
===================================================================
*** gcc/params.def.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/params.def	2008-05-08 17:06:28.000000000 +0200
*************** along with GCC; see the file COPYING3.  
*** 38,58 ****
  
     Be sure to add an entry to invoke.texi summarizing the parameter.  */
  
- /* The maximum number of fields in a variable with only implicit uses
-    for which structure aliasing will consider trying to track each
-    field.  The default is 5.  */
- DEFPARAM (PARAM_SALIAS_MAX_IMPLICIT_FIELDS,
- 	  "salias-max-implicit-fields",
- 	  "The maximum number of fields in a structure variable without direct structure accesses that GCC will attempt to track separately",
- 	  5, 0, 0)
- 
- /* The maximum number of array elements structure aliasing will decompose
-    an array for.  The default is 4.  */
- DEFPARAM (PARAM_SALIAS_MAX_ARRAY_ELEMENTS,
- 	  "salias-max-array-elements",
- 	  "The maximum number of elements in an array for wich we track its elements separately",
- 	  4, 0, 0)
- 
  /* The maximum structure size at which the scalar replacement of
     aggregates (SRA) pass will perform block copies.  The default
     value, 0, implies that GCC will select the most appropriate size
--- 38,43 ----
Index: gcc/opts.c
===================================================================
*** gcc/opts.c.orig	2008-05-08 13:32:02.000000000 +0200
--- gcc/opts.c	2008-05-08 17:09:55.000000000 +0200
*************** decode_options (unsigned int argc, const
*** 848,854 ****
        flag_tree_fre = 1;
        flag_tree_copy_prop = 1;
        flag_tree_sink = 1;
-       flag_tree_salias = 1;
        if (!no_unit_at_a_time_default)
          flag_unit_at_a_time = 1;
  
--- 848,853 ----
*************** common_handle_option (size_t scode, cons
*** 1898,1903 ****
--- 1897,1903 ----
      case OPT_fstrength_reduce:
      case OPT_ftree_store_copy_prop:
      case OPT_fforce_addr:
+     case OPT_ftree_salias:
        /* These are no-ops, preserved for backward compatibility.  */
        break;
  



More information about the Gcc-patches mailing list