Commit 0faa0562 by Richard Guenther Committed by Richard Biener

tree-flow.h (create_var_ann): Remove.

2012-05-24  Richard Guenther  <rguenther@suse.de>

	* tree-flow.h (create_var_ann): Remove.
	* tree-dfa.c (create_var_ann): Remove and inline into its
	single caller ...
	(add_referenced_var_1): ... here.
	* varpool.c (add_new_static_var): Do not call add_referenced_var
	for global vars.
	* gimple-fold.c (canonicalize_constructor_val): Likewise.
	* tree-switch-conversion.c (build_one_array): Likewise.
	* tree-profile.c (gimple_gen_ic_profiler): Likewise.
	* tree-flow-inline.h (gimple_referenced_vars): Guard against
	NULL fn argument.
	* tree-inline.c (remap_gimple_op_r): Likewise.  Check
	gimple_referenced_vars instead of gimple_in_ssa_p.
	(copy_tree_body_r): Likewise.
	(setup_one_parameter): Likewise.
	(declare_return_variable): Likewise.
	(tree_function_versioning): Likewise.

From-SVN: r187829
parent 0d5a9e78
2012-05-24 Richard Guenther <rguenther@suse.de>
* tree-flow.h (create_var_ann): Remove.
* tree-dfa.c (create_var_ann): Remove and inline into its
single caller ...
(add_referenced_var_1): ... here.
* varpool.c (add_new_static_var): Do not call add_referenced_var
for global vars.
* gimple-fold.c (canonicalize_constructor_val): Likewise.
* tree-switch-conversion.c (build_one_array): Likewise.
* tree-profile.c (gimple_gen_ic_profiler): Likewise.
* tree-flow-inline.h (gimple_referenced_vars): Guard against
NULL fn argument.
* tree-inline.c (remap_gimple_op_r): Likewise. Check
gimple_referenced_vars instead of gimple_in_ssa_p.
(copy_tree_body_r): Likewise.
(setup_one_parameter): Likewise.
(declare_return_variable): Likewise.
(tree_function_versioning): Likewise.
2012-05-24 Jakub Jelinek <jakub@redhat.com> 2012-05-24 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/53465 PR tree-optimization/53465
......
...@@ -164,7 +164,8 @@ canonicalize_constructor_val (tree cval, tree from_decl) ...@@ -164,7 +164,8 @@ canonicalize_constructor_val (tree cval, tree from_decl)
if (TREE_CODE (base) == VAR_DECL) if (TREE_CODE (base) == VAR_DECL)
{ {
TREE_ADDRESSABLE (base) = 1; TREE_ADDRESSABLE (base) = 1;
if (cfun && gimple_referenced_vars (cfun)) if (cfun && gimple_referenced_vars (cfun)
&& !is_global_var (base))
add_referenced_var (base); add_referenced_var (base);
} }
else if (TREE_CODE (base) == FUNCTION_DECL) else if (TREE_CODE (base) == FUNCTION_DECL)
......
...@@ -118,27 +118,6 @@ struct gimple_opt_pass pass_referenced_vars = ...@@ -118,27 +118,6 @@ struct gimple_opt_pass pass_referenced_vars =
}; };
/*---------------------------------------------------------------------------
Manage annotations
---------------------------------------------------------------------------*/
/* Create a new annotation for a _DECL node T. */
var_ann_t
create_var_ann (tree t)
{
var_ann_t ann;
gcc_assert (t);
gcc_assert (TREE_CODE (t) == VAR_DECL
|| TREE_CODE (t) == PARM_DECL
|| TREE_CODE (t) == RESULT_DECL);
ann = ggc_alloc_cleared_var_ann_d ();
*DECL_VAR_ANN_PTR (t) = ann;
return ann;
}
/* Renumber all of the gimple stmt uids. */ /* Renumber all of the gimple stmt uids. */
void void
...@@ -587,7 +566,7 @@ add_referenced_var_1 (tree var, struct function *fn) ...@@ -587,7 +566,7 @@ add_referenced_var_1 (tree var, struct function *fn)
return false; return false;
if (!*DECL_VAR_ANN_PTR (var)) if (!*DECL_VAR_ANN_PTR (var))
create_var_ann (var); *DECL_VAR_ANN_PTR (var) = ggc_alloc_cleared_var_ann_d ();
/* Insert VAR into the referenced_vars hash table if it isn't present. */ /* Insert VAR into the referenced_vars hash table if it isn't present. */
if (referenced_var_check_and_insert (var, fn)) if (referenced_var_check_and_insert (var, fn))
......
...@@ -39,7 +39,7 @@ gimple_in_ssa_p (const struct function *fun) ...@@ -39,7 +39,7 @@ gimple_in_ssa_p (const struct function *fun)
static inline htab_t static inline htab_t
gimple_referenced_vars (const struct function *fun) gimple_referenced_vars (const struct function *fun)
{ {
if (!fun->gimple_df) if (!fun || !fun->gimple_df)
return NULL; return NULL;
return fun->gimple_df->referenced_vars; return fun->gimple_df->referenced_vars;
} }
......
...@@ -482,7 +482,6 @@ extern int op_prio (const_tree); ...@@ -482,7 +482,6 @@ extern int op_prio (const_tree);
extern const char *op_symbol_code (enum tree_code); extern const char *op_symbol_code (enum tree_code);
/* In tree-dfa.c */ /* In tree-dfa.c */
extern var_ann_t create_var_ann (tree);
extern void renumber_gimple_stmt_uids (void); extern void renumber_gimple_stmt_uids (void);
extern void renumber_gimple_stmt_uids_in_blocks (basic_block *, int); extern void renumber_gimple_stmt_uids_in_blocks (basic_block *, int);
extern void dump_dfa_stats (FILE *); extern void dump_dfa_stats (FILE *);
......
...@@ -876,8 +876,8 @@ remap_gimple_op_r (tree *tp, int *walk_subtrees, void *data) ...@@ -876,8 +876,8 @@ remap_gimple_op_r (tree *tp, int *walk_subtrees, void *data)
/* Global variables we haven't seen yet need to go into referenced /* Global variables we haven't seen yet need to go into referenced
vars. If not referenced from types only. */ vars. If not referenced from types only. */
if (gimple_in_ssa_p (cfun) if (gimple_referenced_vars (cfun)
&& TREE_CODE (*tp) == VAR_DECL && TREE_CODE (*tp) == VAR_DECL && !is_global_var (*tp)
&& id->remapping_type_depth == 0 && id->remapping_type_depth == 0
&& !processing_debug_stmt) && !processing_debug_stmt)
add_referenced_var (*tp); add_referenced_var (*tp);
...@@ -1119,8 +1119,8 @@ copy_tree_body_r (tree *tp, int *walk_subtrees, void *data) ...@@ -1119,8 +1119,8 @@ copy_tree_body_r (tree *tp, int *walk_subtrees, void *data)
/* Global variables we haven't seen yet needs to go into referenced /* Global variables we haven't seen yet needs to go into referenced
vars. If not referenced from types or debug stmts only. */ vars. If not referenced from types or debug stmts only. */
if (gimple_in_ssa_p (cfun) if (gimple_referenced_vars (cfun)
&& TREE_CODE (*tp) == VAR_DECL && TREE_CODE (*tp) == VAR_DECL && !is_global_var (*tp)
&& id->remapping_type_depth == 0 && id->remapping_type_depth == 0
&& !processing_debug_stmt) && !processing_debug_stmt)
add_referenced_var (*tp); add_referenced_var (*tp);
...@@ -2604,11 +2604,11 @@ setup_one_parameter (copy_body_data *id, tree p, tree value, tree fn, ...@@ -2604,11 +2604,11 @@ setup_one_parameter (copy_body_data *id, tree p, tree value, tree fn,
/* We are eventually using the value - make sure all variables /* We are eventually using the value - make sure all variables
referenced therein are properly recorded. */ referenced therein are properly recorded. */
if (value if (value
&& gimple_in_ssa_p (cfun) && gimple_referenced_vars (cfun)
&& TREE_CODE (value) == ADDR_EXPR) && TREE_CODE (value) == ADDR_EXPR)
{ {
tree base = get_base_address (TREE_OPERAND (value, 0)); tree base = get_base_address (TREE_OPERAND (value, 0));
if (base && TREE_CODE (base) == VAR_DECL) if (base && TREE_CODE (base) == VAR_DECL && !is_global_var (base))
add_referenced_var (base); add_referenced_var (base);
} }
...@@ -2917,7 +2917,7 @@ declare_return_variable (copy_body_data *id, tree return_slot, tree modify_dest, ...@@ -2917,7 +2917,7 @@ declare_return_variable (copy_body_data *id, tree return_slot, tree modify_dest,
gcc_assert (TREE_CODE (TYPE_SIZE_UNIT (callee_type)) == INTEGER_CST); gcc_assert (TREE_CODE (TYPE_SIZE_UNIT (callee_type)) == INTEGER_CST);
var = copy_result_decl_to_var (result, id); var = copy_result_decl_to_var (result, id);
if (gimple_in_ssa_p (cfun)) if (gimple_referenced_vars (cfun))
add_referenced_var (var); add_referenced_var (var);
DECL_SEEN_IN_BIND_EXPR_P (var) = 1; DECL_SEEN_IN_BIND_EXPR_P (var) = 1;
...@@ -2978,7 +2978,7 @@ declare_return_variable (copy_body_data *id, tree return_slot, tree modify_dest, ...@@ -2978,7 +2978,7 @@ declare_return_variable (copy_body_data *id, tree return_slot, tree modify_dest,
&& !is_gimple_val (var)) && !is_gimple_val (var))
{ {
tree temp = create_tmp_var (TREE_TYPE (result), "retvalptr"); tree temp = create_tmp_var (TREE_TYPE (result), "retvalptr");
if (gimple_in_ssa_p (id->src_cfun)) if (gimple_referenced_vars (cfun))
add_referenced_var (temp); add_referenced_var (temp);
insert_decl_map (id, result, temp); insert_decl_map (id, result, temp);
/* When RESULT_DECL is in SSA form, we need to remap and initialize /* When RESULT_DECL is in SSA form, we need to remap and initialize
...@@ -5194,10 +5194,8 @@ tree_function_versioning (tree old_decl, tree new_decl, ...@@ -5194,10 +5194,8 @@ tree_function_versioning (tree old_decl, tree new_decl,
if (TREE_CODE (op) == ADDR_EXPR) if (TREE_CODE (op) == ADDR_EXPR)
{ {
op = TREE_OPERAND (op, 0); op = get_base_address (TREE_OPERAND (op, 0));
while (handled_component_p (op)) if (op && TREE_CODE (op) == VAR_DECL && !is_global_var (op))
op = TREE_OPERAND (op, 0);
if (TREE_CODE (op) == VAR_DECL)
add_referenced_var (op); add_referenced_var (op);
} }
gcc_assert (TREE_CODE (replace_info->old_tree) == PARM_DECL); gcc_assert (TREE_CODE (replace_info->old_tree) == PARM_DECL);
......
...@@ -347,7 +347,6 @@ gimple_gen_ic_profiler (histogram_value value, unsigned tag, unsigned base) ...@@ -347,7 +347,6 @@ gimple_gen_ic_profiler (histogram_value value, unsigned tag, unsigned base)
gimple_assign_set_lhs (stmt2, make_ssa_name (tmp1, stmt2)); gimple_assign_set_lhs (stmt2, make_ssa_name (tmp1, stmt2));
find_referenced_vars_in (stmt2); find_referenced_vars_in (stmt2);
stmt3 = gimple_build_assign (ic_void_ptr_var, gimple_assign_lhs (stmt2)); stmt3 = gimple_build_assign (ic_void_ptr_var, gimple_assign_lhs (stmt2));
add_referenced_var (ic_void_ptr_var);
gsi_insert_before (&gsi, stmt1, GSI_SAME_STMT); gsi_insert_before (&gsi, stmt1, GSI_SAME_STMT);
gsi_insert_before (&gsi, stmt2, GSI_SAME_STMT); gsi_insert_before (&gsi, stmt2, GSI_SAME_STMT);
...@@ -383,11 +382,9 @@ gimple_gen_ic_func_profiler (void) ...@@ -383,11 +382,9 @@ gimple_gen_ic_func_profiler (void)
counter_ptr = force_gimple_operand_gsi (&gsi, ic_gcov_type_ptr_var, counter_ptr = force_gimple_operand_gsi (&gsi, ic_gcov_type_ptr_var,
true, NULL_TREE, true, true, NULL_TREE, true,
GSI_SAME_STMT); GSI_SAME_STMT);
add_referenced_var (ic_gcov_type_ptr_var);
ptr_var = force_gimple_operand_gsi (&gsi, ic_void_ptr_var, ptr_var = force_gimple_operand_gsi (&gsi, ic_void_ptr_var,
true, NULL_TREE, true, true, NULL_TREE, true,
GSI_SAME_STMT); GSI_SAME_STMT);
add_referenced_var (ic_void_ptr_var);
tree_uid = build_int_cst (gcov_type_node, current_function_funcdef_no); tree_uid = build_int_cst (gcov_type_node, current_function_funcdef_no);
stmt1 = gimple_build_call (tree_indirect_call_profiler_fn, 4, stmt1 = gimple_build_call (tree_indirect_call_profiler_fn, 4,
counter_ptr, tree_uid, cur_func, ptr_var); counter_ptr, tree_uid, cur_func, ptr_var);
......
...@@ -630,7 +630,6 @@ build_one_array (gimple swtch, int num, tree arr_index_type, gimple phi, ...@@ -630,7 +630,6 @@ build_one_array (gimple swtch, int num, tree arr_index_type, gimple phi,
DECL_ARTIFICIAL (decl) = 1; DECL_ARTIFICIAL (decl) = 1;
TREE_CONSTANT (decl) = 1; TREE_CONSTANT (decl) = 1;
TREE_READONLY (decl) = 1; TREE_READONLY (decl) = 1;
add_referenced_var (decl);
varpool_finalize_decl (decl); varpool_finalize_decl (decl);
fetch = build4 (ARRAY_REF, value_type, decl, tidx, NULL_TREE, fetch = build4 (ARRAY_REF, value_type, decl, tidx, NULL_TREE,
......
...@@ -458,7 +458,6 @@ add_new_static_var (tree type) ...@@ -458,7 +458,6 @@ add_new_static_var (tree type)
DECL_ABSTRACT (new_decl) = 0; DECL_ABSTRACT (new_decl) = 0;
lang_hooks.dup_lang_specific_decl (new_decl); lang_hooks.dup_lang_specific_decl (new_decl);
new_node = varpool_node (new_decl); new_node = varpool_node (new_decl);
add_referenced_var (new_decl);
varpool_finalize_decl (new_decl); varpool_finalize_decl (new_decl);
return new_node->symbol.decl; return new_node->symbol.decl;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment