aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-dfa.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-05-21 14:53:21 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-05-21 14:53:21 +0000
commitcb0c9fc30529a672fb0105d505523668da17da33 (patch)
tree13f0febe9af8ce8dfe21d99708c299d629e8aa5e /gcc/tree-dfa.c
parent01c7ccbb81d2ee750e30cc8bf10deb9ed07e7bf0 (diff)
downloadgcc-cb0c9fc30529a672fb0105d505523668da17da33.zip
gcc-cb0c9fc30529a672fb0105d505523668da17da33.tar.gz
gcc-cb0c9fc30529a672fb0105d505523668da17da33.tar.bz2
tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for more referenced vars.
2012-05-21 Richard Guenther <rguenther@suse.de> * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for more referenced vars. * tree-ssa-live.c (mark_all_vars_used_1): Only set the used flag on variables that have a var-annotation. From-SVN: r187719
Diffstat (limited to 'gcc/tree-dfa.c')
-rw-r--r--gcc/tree-dfa.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index 007b819..46fcfc1 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -577,24 +577,16 @@ set_default_def (tree var, tree def)
bool
add_referenced_var (tree var)
{
- gcc_assert (DECL_P (var));
+ gcc_checking_assert (TREE_CODE (var) == VAR_DECL
+ || TREE_CODE (var) == PARM_DECL
+ || TREE_CODE (var) == RESULT_DECL);
+
if (!*DECL_VAR_ANN_PTR (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))
- {
- /* Scan DECL_INITIAL for pointer variables as they may contain
- address arithmetic referencing the address of other
- variables. As we are only interested in directly referenced
- globals or referenced locals restrict this to initializers
- than can refer to local variables. */
- if (DECL_INITIAL (var)
- && DECL_CONTEXT (var) == current_function_decl)
- walk_tree (&DECL_INITIAL (var), find_vars_r, NULL, 0);
-
- return true;
- }
+ return true;
return false;
}