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
This commit is contained in:
parent
01c7ccbb81
commit
cb0c9fc305
|
@ -1,3 +1,10 @@
|
|||
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.
|
||||
|
||||
2012-05-21 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
PR c/53148
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -377,7 +377,8 @@ mark_all_vars_used_1 (tree *tp, int *walk_subtrees, void *data)
|
|||
if (data != NULL && bitmap_clear_bit ((bitmap) data, DECL_UID (t))
|
||||
&& DECL_CONTEXT (t) == current_function_decl)
|
||||
mark_all_vars_used (&DECL_INITIAL (t), data);
|
||||
set_is_used (t);
|
||||
if (var_ann (t) != NULL)
|
||||
set_is_used (t);
|
||||
}
|
||||
/* remove_unused_scope_block_p requires information about labels
|
||||
which are not DECL_IGNORED_P to tell if they might be used in the IL. */
|
||||
|
|
Loading…
Reference in New Issue