mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-22 20:36:20 +08:00
invoke.texi (-fdump-tree-salias): Remove documentation.
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. From-SVN: r135111
This commit is contained in:
parent
31de5b771a
commit
1353232d3d
@ -1,3 +1,26 @@
|
||||
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.
|
||||
|
||||
2008-05-08 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-flow-inline.h (var_can_have_subvars): Move ...
|
||||
|
@ -1141,8 +1141,8 @@ Common Report Var(flag_tree_reassoc) Init(1) Optimization
|
||||
Enable reassociation on tree level
|
||||
|
||||
ftree-salias
|
||||
Common Report Var(flag_tree_salias) Optimization
|
||||
Perform structural alias analysis
|
||||
Common
|
||||
Does nothing. Preserved for backward compatibility.
|
||||
|
||||
ftree-sink
|
||||
Common Report Var(flag_tree_sink) Optimization
|
||||
|
@ -292,7 +292,6 @@ Objective-C and Objective-C++ Dialects}.
|
||||
-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
|
||||
@ -357,7 +356,7 @@ Objective-C and Objective-C++ Dialects}.
|
||||
-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-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
|
||||
@ -4803,11 +4802,6 @@ appending @file{.ch} to the source file name.
|
||||
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
|
||||
@ -5791,11 +5785,6 @@ Perform copy propagation on trees. This pass eliminates unnecessary
|
||||
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.
|
||||
@ -6799,15 +6788,6 @@ In each case, the @var{value} is an integer. The allowable choices for
|
||||
@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
|
||||
|
@ -848,7 +848,6 @@ decode_options (unsigned int argc, const char **argv)
|
||||
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;
|
||||
|
||||
@ -1898,6 +1897,7 @@ common_handle_option (size_t scode, const char *arg, int value,
|
||||
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;
|
||||
|
||||
|
@ -38,21 +38,6 @@ along with GCC; see the file COPYING3. If not see
|
||||
|
||||
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
|
||||
|
@ -93,10 +93,6 @@ typedef enum compiler_param
|
||||
(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 \
|
||||
|
@ -557,10 +557,8 @@ init_optimization_passes (void)
|
||||
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. */
|
||||
/* 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);
|
||||
|
@ -1,3 +1,16 @@
|
||||
2008-05-08 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* 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.
|
||||
|
||||
2008-05-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||||
|
||||
PR fortran/36162
|
||||
|
@ -1,7 +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" } */
|
||||
/* { dg-options "-O1 -fdump-tree-alias-vops" } */
|
||||
|
||||
struct s { int a; };
|
||||
|
||||
@ -14,5 +14,5 @@ main(void)
|
||||
}
|
||||
|
||||
/* 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" } } */
|
||||
/* { dg-final { scan-tree-dump-times "DEF" 2 "alias" } } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O1 -fdump-tree-salias-vops" } */
|
||||
/* { dg-options "-O1 -fdump-tree-alias-vops" } */
|
||||
extern void abort (void);
|
||||
int a;
|
||||
|
||||
@ -17,5 +17,5 @@ void bar (void)
|
||||
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" } } */
|
||||
/* { dg-final { scan-tree-dump-times "VDEF" 2 "alias"} } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -1,7 +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" } */
|
||||
/* { dg-options "-O2 -fdump-tree-alias-vops" } */
|
||||
|
||||
char buf[4], *q;
|
||||
int foo (int i)
|
||||
@ -18,5 +18,5 @@ int foo (int i)
|
||||
return *p;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump-not "VUSE <c" "salias" } } */
|
||||
/* { dg-final { cleanup-tree-dump "salias" } } */
|
||||
/* { dg-final { scan-tree-dump-not "VUSE <c" "alias" } } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-salias-vops" } */
|
||||
/* { dg-options "-O2 -fdump-tree-alias-vops" } */
|
||||
|
||||
struct {
|
||||
int i;
|
||||
@ -13,6 +13,6 @@ int foo(int i)
|
||||
return a.x[i];
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump "VDEF" "salias" } } */
|
||||
/* { dg-final { cleanup-tree-dump "salias" } } */
|
||||
/* { dg-final { scan-tree-dump "VDEF" "alias" } } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O -fno-early-inlining -fdump-tree-salias-vops-details" } */
|
||||
/* { dg-options "-O -fno-early-inlining -fdump-tree-alias-vops-details" } */
|
||||
|
||||
struct foo {
|
||||
int a;
|
||||
@ -15,5 +15,5 @@ int test2(void)
|
||||
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" } } */
|
||||
/* { dg-final { scan-tree-dump-times "VUSE <m_.\\\(D\\\)>" 2 "alias" } } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -1,6 +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. */
|
||||
/* { 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)
|
||||
@ -16,5 +16,5 @@ char f(char *a)
|
||||
/* { 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" } } */
|
||||
/* { dg-final { scan-tree-dump-times "VDEF" 1 "alias"} } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O1 -fdump-tree-salias-vops" } */
|
||||
/* Test to make sure that inline-asm causes a V_MAY_DEF. */
|
||||
/* { dg-options "-O1 -fdump-tree-alias-vops" } */
|
||||
/* Test to make sure that inline-asm causes a VDEF. */
|
||||
|
||||
|
||||
void link_error();
|
||||
@ -14,5 +14,5 @@ void f(char *a)
|
||||
}
|
||||
|
||||
/* 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" } } */
|
||||
/* { dg-final { scan-tree-dump-times "VDEF" 2 "alias"} } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-salias-vops" } */
|
||||
/* { dg-options "-O2 -fdump-tree-alias-vops" } */
|
||||
struct a
|
||||
{
|
||||
int length;
|
||||
@ -13,5 +13,5 @@ int f(void)
|
||||
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" } } */
|
||||
/* { dg-final { scan-tree-dump-times "VDEF <HEAP" 1 "alias"} } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-salias-vops" } */
|
||||
/* { dg-options "-O2 -fdump-tree-alias-vops" } */
|
||||
|
||||
typedef struct {
|
||||
int i;
|
||||
@ -18,5 +18,5 @@ int foo(void)
|
||||
|
||||
/* Verify the call clobbers all of a. */
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "VDEF <a_" 2 "salias" } } */
|
||||
/* { dg-final { cleanup-tree-dump "salias" } } */
|
||||
/* { dg-final { scan-tree-dump-times "VDEF <a_" 2 "alias" } } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-salias" } */
|
||||
/* { dg-options "-O2 -fdump-tree-alias" } */
|
||||
extern double cos (double);
|
||||
extern double sin (double);
|
||||
double f(double a)
|
||||
@ -22,5 +22,5 @@ double f(double a)
|
||||
}
|
||||
/* 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" } } */
|
||||
/* { dg-final { scan-tree-dump-times "{ sin cos }" 1 "alias"} } */
|
||||
/* { dg-final { cleanup-tree-dump "alias" } } */
|
||||
|
@ -374,7 +374,6 @@ extern struct gimple_opt_pass pass_check_data_deps;
|
||||
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;
|
||||
|
@ -3438,38 +3438,6 @@ new_type_alias (tree ptr, tree var, tree expr)
|
||||
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. */
|
||||
@ -3504,19 +3472,15 @@ struct gimple_opt_pass pass_reset_cc_flags =
|
||||
}
|
||||
};
|
||||
|
||||
static bool
|
||||
gate_build_alias (void)
|
||||
{
|
||||
return !gate_structure_vars();
|
||||
}
|
||||
|
||||
/* A dummy pass to cause aliases to be computed via TODO_rebuild_alias. */
|
||||
|
||||
struct gimple_opt_pass pass_build_alias =
|
||||
{
|
||||
{
|
||||
GIMPLE_PASS,
|
||||
"build_alias", /* name */
|
||||
gate_build_alias, /* gate */
|
||||
"alias", /* name */
|
||||
NULL, /* gate */
|
||||
NULL, /* execute */
|
||||
NULL, /* sub */
|
||||
NULL, /* next */
|
||||
@ -3526,6 +3490,6 @@ struct gimple_opt_pass pass_build_alias =
|
||||
PROP_alias, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_rebuild_alias /* todo_flags_finish */
|
||||
TODO_rebuild_alias | TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user