[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