OSDN Git Service

2008-05-08 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 May 2008 09:37:36 +0000 (09:37 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 May 2008 09:37:36 +0000 (09:37 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135111 138bc75d-0d04-0410-961f-82ee72b054a4

20 files changed:
gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/opts.c
gcc/params.def
gcc/params.h
gcc/passes.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/20031015-1.c
gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
gcc/testsuite/gcc.dg/tree-ssa/20040911-1.c
gcc/testsuite/gcc.dg/tree-ssa/alias-12.c
gcc/testsuite/gcc.dg/tree-ssa/alias-15.c
gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c
gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c
gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
gcc/testsuite/gcc.dg/tree-ssa/pr26421.c
gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
gcc/tree-pass.h
gcc/tree-ssa-alias.c

index b20ba0f..f3f60fb 100644 (file)
@@ -1,5 +1,28 @@
 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 ...
        * tree-ssa-structalias.c (var_can_have_subvars): ... here.
        * tree-flow.h (var_can_have_subvars): Remove.
index e354551..4a44cd6 100644 (file)
@@ -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
index 5ccbda9..e898148 100644 (file)
@@ -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
index a5931f4..7add8d3 100644 (file)
@@ -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;
 
index ac7bf4f..d80deff 100644 (file)
@@ -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
index 7c54b5d..bb3afb3 100644 (file)
@@ -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 \
index 9852f8b..bd83926 100644 (file)
@@ -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);
index 96bc1b4..0c8fc0b 100644 (file)
@@ -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
index 46a3be7..102715c 100644 (file)
@@ -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" } } */
index 318ba7c..99b27ce 100644 (file)
@@ -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" } } */
index ac2b961..f17e98a 100644 (file)
@@ -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" } } */
index 970ddc7..b1fb799 100644 (file)
@@ -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" } } */
 
index a8f6115..617af0f 100644 (file)
@@ -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" } } */
index 97c25b1..0c84ed3 100644 (file)
@@ -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" } } */
index 33443e0..6b347c4 100644 (file)
@@ -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" } } */
index d0b2088..331e01b 100644 (file)
@@ -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" } } */
index 2b2f497..73db85c 100644 (file)
@@ -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" } } */
index b9d84df..022783d 100644 (file)
@@ -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" } } */
index 8830c44..c18c412 100644 (file)
@@ -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;
index 5e3fb47..814631a 100644 (file)
@@ -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 */
  }
 };