aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-dfa.c
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dbrelin.org>2005-11-08 16:34:48 +0000
committerDaniel Berlin <dberlin@dbrelin.org>2005-11-08 16:34:48 +0000
commitf6a774a06eb033132ed9fc91222e8e8f05767b4d (patch)
treeb44d278762551161178f033b428dfde8fea6c404 /gcc/tree-dfa.c
parenta79426042e35771b476a58e6a7068520496e0cf7 (diff)
2005-11-08 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/23382 * tree-ssa-alias.c (compute_may_aliases): Call delete_old_heap_vars. * tree-dfa.c (referenced_var_remove): New function. * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars. * tree-flow.h (referenced_var_remove): Add prototype. (delete_old_heap_vars): Ditto. * tree-ssa-structalias.c (heapvars): New variable. (oldheapvars): Ditto. (get_constraint_for): Put heap vars on heapvars list. (delete_old_heap_vars): New function. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@106643 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-dfa.c')
-rw-r--r--gcc/tree-dfa.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index 9fc48d5cbe8..2ede8e6365b 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -609,6 +609,18 @@ referenced_var_insert (unsigned int uid, tree to)
*(struct int_tree_map **) loc = h;
}
+/* Remove the pair DECL_UID (TO), TO from the referenced vars
+ hashtable. */
+
+void
+referenced_var_remove (tree to)
+{
+ struct int_tree_map in;
+ in.uid = DECL_UID (to);
+ in.to = to;
+ htab_remove_elt_with_hash (referenced_vars, &in, in.uid);
+}
+
/* Add VAR to the list of dereferenced variables.
WALK_STATE contains a hash table used to avoid adding the same