]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-flow.h (add_referenced_var_1): Declare.
authorRichard Guenther <rguenther@suse.de>
Tue, 22 May 2012 09:33:01 +0000 (09:33 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 22 May 2012 09:33:01 +0000 (09:33 +0000)
2012-05-22  Richard Guenther  <rguenther@suse.de>

* tree-flow.h (add_referenced_var_1): Declare.
(add_referenced_var): Define.
* tree-dfa.c (referenced_var_check_and_insert): Avoid one hash
lookup.
(add_referenced_var): Rename to ...
(add_referenced_var_1): ... this.  Take struct function argument.

From-SVN: r187766

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

index 496bb5fdc280177c75c925f5bdc5a12040bc8b97..fc082836fbc34a88a606f498a0ad3a90bea0d28a 100644 (file)
@@ -1,3 +1,12 @@
+2012-05-22  Richard Guenther  <rguenther@suse.de>
+
+       * tree-flow.h (add_referenced_var_1): Declare.
+       (add_referenced_var): Define.
+       * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash
+       lookup.
+       (add_referenced_var): Rename to ...
+       (add_referenced_var_1): ... this.  Take struct function argument.
+
 2012-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
 
        PR target/53334
index 46fcfc1ef1dfa55d8d44652d97e72e6034a756fe..785ae1b3d4b6a439210c48ec42e93059f9a8d9dd 100644 (file)
@@ -503,24 +503,23 @@ referenced_var_lookup (struct function *fn, unsigned int uid)
    Return true if it required insertion.  */
 
 static bool
-referenced_var_check_and_insert (tree to)
+referenced_var_check_and_insert (tree to, struct function *fn)
 {
-  tree h, *loc;
+  tree *loc;
   struct tree_decl_minimal in;
   unsigned int uid = DECL_UID (to);
 
   in.uid = uid;
-  h = (tree) htab_find_with_hash (gimple_referenced_vars (cfun), &in, uid);
-  if (h)
+  loc = (tree *) htab_find_slot_with_hash (gimple_referenced_vars (fn),
+                                          &in, uid, INSERT);
+  if (*loc)
     {
       /* DECL_UID has already been entered in the table.  Verify that it is
         the same entry as TO.  See PR 27793.  */
-      gcc_assert (h == to);
+      gcc_assert (*loc == to);
       return false;
     }
 
-  loc = (tree *) htab_find_slot_with_hash (gimple_referenced_vars (cfun),
-                                          &in, uid, INSERT);
   *loc = to;
   return true;
 }
@@ -575,7 +574,7 @@ set_default_def (tree var, tree def)
 /* Add VAR to the list of referenced variables if it isn't already there.  */
 
 bool
-add_referenced_var (tree var)
+add_referenced_var_1 (tree var, struct function *fn)
 {
   gcc_checking_assert (TREE_CODE (var) == VAR_DECL
                       || TREE_CODE (var) == PARM_DECL
@@ -585,7 +584,7 @@ add_referenced_var (tree var)
     create_var_ann (var);
 
   /* Insert VAR into the referenced_vars hash table if it isn't present.  */
-  if (referenced_var_check_and_insert (var))
+  if (referenced_var_check_and_insert (var, fn))
     return true;
 
   return false;
index faa06ae130dbff85ccf0ec15a20724c6dc8f1cb0..78bd9f86353648b974191cb5e4f1ada7d2d6efcb 100644 (file)
@@ -491,7 +491,8 @@ extern void debug_referenced_vars (void);
 extern void dump_referenced_vars (FILE *);
 extern void dump_variable (FILE *, tree);
 extern void debug_variable (tree);
-extern bool add_referenced_var (tree);
+extern bool add_referenced_var_1 (tree, struct function *);
+#define add_referenced_var(v) add_referenced_var_1 ((v), cfun)
 extern void remove_referenced_var (tree);
 extern tree make_rename_temp (tree, const char *);
 extern void set_default_def (tree, tree);