2006-06-15 Andrew MacLeod <amacleod@redhat.com>
authoramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Jun 2006 13:30:17 +0000 (13:30 +0000)
committeramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 15 Jun 2006 13:30:17 +0000 (13:30 +0000)
PR middle-end/27793
* tree-dfa.c (referenced_vars_dup_list): Remove.
(find_referenced_vars): Remove assert.
(referenced_var_check_and_insert): Replace dup list with assert.
* tree-ssa.c (delete_tree_ssa): Remove dup list processing.
* tree-flow.h (referenced_vars_dup_list): Remove extern decl.

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

gcc/ChangeLog
gcc/tree-dfa.c
gcc/tree-flow.h
gcc/tree-ssa.c

index ba5ffb9..9abc3e8 100644 (file)
@@ -1,3 +1,12 @@
+2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
+       
+       PR middle-end/27793
+       * tree-dfa.c (referenced_vars_dup_list): Remove.
+       (find_referenced_vars): Remove assert.
+       (referenced_var_check_and_insert): Replace dup list with assert.
+       * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
+       * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
+
 2006-06-15  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-structalias.c (alias_get_name): Avoid creating
index b5a0178..f0049ed 100644 (file)
@@ -75,8 +75,6 @@ static tree find_vars_r (tree *, int *, void *);
 
 /* Array of all variables referenced in the function.  */
 htab_t referenced_vars;
-/* List of referenced variables with duplicate UID's.  */
-VEC(tree,gc) *referenced_vars_dup_list;
 
 /* Default definition for this symbols.  If set for symbol, it
    means that the first reference to this variable in the function is a
@@ -102,7 +100,6 @@ find_referenced_vars (void)
   basic_block bb;
   block_stmt_iterator si;
 
-  gcc_assert (VEC_length (tree, referenced_vars_dup_list) == 0);
   FOR_EACH_BB (bb)
     for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
       {
@@ -640,27 +637,9 @@ referenced_var_check_and_insert (tree to)
 
   if (h)
     {
-      unsigned u;
-      tree t = NULL_TREE;
-
       /* DECL_UID has already been entered in the table.  Verify that it is
-        the same entry as TO.  */
-      gcc_assert (h->to != NULL);
-      if (h->to == to)
-        return false;
-
-      /* PRs 26757 and 27793.  Maintain a list of duplicate variable pointers
-        with the same DECL_UID.  There isn't usually very many.
-        TODO.  Once the C++ front end doesn't create duplicate DECL UID's, this
-        code can be removed.  */
-      for (u = 0; u < VEC_length (tree, referenced_vars_dup_list); u++)
-       {
-         t = VEC_index (tree, referenced_vars_dup_list, u);
-         if (t == to)
-           break;
-       }
-      if (t != to)
-       VEC_safe_push (tree, gc, referenced_vars_dup_list, to);
+        the same entry as TO.  See PR 27793.  */
+      gcc_assert (h->to == to);
       return false;
     }
 
index 4e69368..eee6fa4 100644 (file)
@@ -419,8 +419,6 @@ typedef struct
 
 /* Array of all variables referenced in the function.  */
 extern GTY((param_is (struct int_tree_map))) htab_t referenced_vars;
-/* List of referenced variables in the function with duplicate UID's.  */
-extern VEC(tree,gc) *referenced_vars_dup_list;
 
 /* Default defs for undefined symbols. */
 extern GTY((param_is (struct int_tree_map))) htab_t default_defs;
index 9eb1b21..1446612 100644 (file)
@@ -853,7 +853,6 @@ delete_tree_ssa (void)
   block_stmt_iterator bsi;
   referenced_var_iterator rvi;
   tree var;
-  unsigned u;
 
   /* Release any ssa_names still in use.  */
   for (i = 0; i < num_ssa_names; i++)
@@ -888,16 +887,6 @@ delete_tree_ssa (void)
       ggc_free (var->common.ann);
       var->common.ann = NULL;
     }
-
-  /* Remove any referenced variables which had duplicate UID's.  */
-  for (u = 0; u < VEC_length (tree, referenced_vars_dup_list); u++)
-    {
-      var = VEC_index (tree, referenced_vars_dup_list, u);
-      ggc_free (var->common.ann);
-      var->common.ann = NULL;
-    }
-  VEC_free (tree, gc, referenced_vars_dup_list);
-
   htab_delete (referenced_vars);
   referenced_vars = NULL;