tree-dfa.c (add_referenced_var): Don't walk initializer of external and non-constant public variables.

* tree-dfa.c (add_referenced_var): Don't walk initializer of external
	and non-constant public variables.

From-SVN: r95844
This commit is contained in:
Jan Hubicka 2005-03-03 20:53:47 +01:00 committed by Jan Hubicka
parent e59ef5430f
commit 59c982fe93
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2005-03-03 Jan Hubicka <jh@suse.cz>
* tree-dfa.c (add_referenced_var): Don't walk initializer of external
and non-constant public variables.
2005-03-03 Kazu Hirata <kazu@cs.umass.edu>
* tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code

View File

@ -901,7 +901,14 @@ add_referenced_var (tree var, struct walk_state *walk_state)
/* Scan DECL_INITIAL for pointer variables as they may contain
address arithmetic referencing the address of other
variables. */
if (DECL_INITIAL (var))
if (DECL_INITIAL (var)
/* Initializers of external variables are not useful to the
optimizers. */
&& !DECL_EXTERNAL (var)
/* It's not necessary to walk the initial value of non-constant
public variables because it cannot be propagated by the
optimizers. */
&& (!TREE_PUBLIC (var) || !TREE_CONSTANT (var)))
walk_tree (&DECL_INITIAL (var), find_vars_r, walk_state, 0);
}
}