From 2d04fd8dddd64aae0c58fcbe0b5793dcd8854b2e Mon Sep 17 00:00:00 2001 From: hubicka Date: Tue, 28 Nov 2006 14:42:37 +0000 Subject: Privatize SSA variables into gimple_df. * tree-flow-inline.h (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars, gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var, gimple_nonlocal_all): New accessors. (first_referenced_var): Update. (mark_stmt_modified): Update. (is_call_clobbered): Update. (mark_call_clobbered): Update. (clear_call_clobbered): Update. (mark_non_addressable): Update. * tree-vrp.c (get_value_range): Update. * tree-into-ssa.c (in_ssa_p): Kill. (get_default_def_for): Update. (rewrite_into_ssa): Update. * tree-complex.c (init_parameter_lattice_values): Update. (update_complex_assignment): Update. (update_parameter_components): Update. (expand_complex_libcall): Update. (expand_complex_operations_1): Update. * tree-tailcall.c (arg_needs_copy_p): Update. (add_virtual_phis): Update. (tree_optimize_tail_calls_1): Update. * tree-ssa-dse.c (memory_ssa_name_same): Update. * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Update. * tree-ssa-math-opts.c (execute_cse_reciprocals): Update. * tree-ssa-propagate.c (set_rhs): Update. * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars, addressable_vars, global_var):Kill. (set_initial_properties): Update. (init_alias_info): Update. (finalize_ref_all_pointers): Update. (setup_pointers_and_addressables): Update. (maybe_create_global_var): Update. (create_global_var): Update. (dump_points_to_info): Update. * function.h (struct gimple_df): Forward declare. (struct function): Add GIMPLE_DF field. * gimplify.c (force_gimple_operand): Update. * tree-dfa.c (referenced_vars, default_defs): KIll. (make_rename_temp): Update. (dump_variable): Update. (referenced_var_lookup): Update. (referenced_var_check_and_insert): Update. (default_def): Rename to ... (gimple_default_def): ... this one; accept cfun argument. (set_default_def): Update. * tree-cfgcleanup.c (modified_noreturn_calls): Kill. (cleanup_control_flow): Update. * tree-ssa-pre.c (compute_avail): Update * tree-ssa-live.c (calculate_live_on_entry): Update. * tree-ssa.c (verify_use): Update. (verify_call_clobbering): Update. (verify_call_clobbering): Update. (init_tree_ssa): Update. (delete_tree_ssa): Update. * tree-outof-ssa.c (coalesce_ssa_name): Update. (rewrite_out_of_ssa): Update. * tree-flow.h (gimple_df): New structure collecting dataflow variables. (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New private accessors. (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs, ssa_names, global_var, nonlocal_all, call_clobbered_vars, addressable_vars, aliases_computed_p): Kill. (default_def): Rename to... (gimple_default_def): ... this one. (defaule_def_fn): Kill. (num_referenced_vars, ssa_names, num_ssa_names): Update. * tree-ssa-structalias.c (nonlocal_all): Kill. (get_constraint_exp_from_ssa_var): Update. (create_nonlocal_var): Update. (get_constraint_for): Update. (update_alias_info): Update. (find_global_initializers): Update. (intra_create_variable_infos): Update. (intra_create_variable_infos): (find_what_p_points_to): Update. (init_alias_heapvars): Update. * tree-cfg.c (remove_bb): Update. (gimplify_val): Update. * tree-ssa-reassoc.c (get_rank): Update. (init_reassoc): Update. * tree-ssanames.c: Do not include gt-tree-ssanames.h (ssa_names, free_ssanames): Kill. (init_ssanames): Update. (make_ssa_name): Update. (release_ssa_name): Update. (release_defs): Update. (replace_ssa_name_symbol): Update. * tree-ssa-operands.c (access_can_touch_variable): Update. (add_virtual_operand): Update. (add_call_clobber_ops): Update. (add_call_read_ops): Update. (get_call_expr_operands): Update. (get_asm_expr_operands): Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119294 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-dfa.c | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) (limited to 'gcc/tree-dfa.c') diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index 5ade6455d96..3330624c19f 100644 --- a/gcc/tree-dfa.c +++ b/gcc/tree-dfa.c @@ -71,18 +71,6 @@ static tree collect_dfa_stats_r (tree *, int *, void *); static tree find_vars_r (tree *, int *, void *); -/* Global declarations. */ - -/* Array of all variables referenced in the function. */ -htab_t referenced_vars; - -/* Default definition for this symbols. If set for symbol, it - means that the first reference to this variable in the function is a - USE or a VUSE. In those cases, the SSA renamer creates an SSA name - for this variable with an empty defining statement. */ -htab_t default_defs; - - /*--------------------------------------------------------------------------- Dataflow analysis (DFA) routines ---------------------------------------------------------------------------*/ @@ -222,7 +210,7 @@ make_rename_temp (tree type, const char *prefix) if (TREE_CODE (type) == COMPLEX_TYPE) DECL_COMPLEX_GIMPLE_REG_P (t) = 1; - if (referenced_vars) + if (gimple_referenced_vars (cfun)) { add_referenced_var (t); mark_sym_for_renaming (t); @@ -375,10 +363,10 @@ dump_variable (FILE *file, tree var) } } - if (default_def (var)) + if (gimple_default_def (cfun, var)) { fprintf (file, ", default def: "); - print_generic_expr (file, default_def (var), dump_flags); + print_generic_expr (file, gimple_default_def (cfun, var), dump_flags); } if (may_aliases (var)) @@ -611,7 +599,8 @@ referenced_var_lookup (unsigned int uid) { struct int_tree_map *h, in; in.uid = uid; - h = (struct int_tree_map *) htab_find_with_hash (referenced_vars, &in, uid); + h = (struct int_tree_map *) htab_find_with_hash (gimple_referenced_vars (cfun), + &in, uid); gcc_assert (h || uid == 0); if (h) return h->to; @@ -630,7 +619,8 @@ referenced_var_check_and_insert (tree to) in.uid = uid; in.to = to; - h = (struct int_tree_map *) htab_find_with_hash (referenced_vars, &in, uid); + h = (struct int_tree_map *) htab_find_with_hash (gimple_referenced_vars (cfun), + &in, uid); if (h) { @@ -643,7 +633,8 @@ referenced_var_check_and_insert (tree to) h = GGC_NEW (struct int_tree_map); h->uid = uid; h->to = to; - loc = htab_find_slot_with_hash (referenced_vars, h, uid, INSERT); + loc = htab_find_slot_with_hash (gimple_referenced_vars (cfun), + h, uid, INSERT); *(struct int_tree_map **) loc = h; return true; } @@ -652,12 +643,13 @@ referenced_var_check_and_insert (tree to) variable. */ tree -default_def (tree var) +gimple_default_def (struct function *fn, tree var) { struct int_tree_map *h, in; gcc_assert (SSA_VAR_P (var)); in.uid = DECL_UID (var); - h = (struct int_tree_map *) htab_find_with_hash (default_defs, &in, + h = (struct int_tree_map *) htab_find_with_hash (DEFAULT_DEFS (fn), + &in, DECL_UID (var)); if (h) return h->to; @@ -675,14 +667,16 @@ set_default_def (tree var, tree def) gcc_assert (SSA_VAR_P (var)); in.uid = DECL_UID (var); - if (!def && default_def (var)) + if (!def && gimple_default_def (cfun, var)) { - loc = htab_find_slot_with_hash (default_defs, &in, DECL_UID (var), INSERT); - htab_remove_elt (default_defs, *loc); + loc = htab_find_slot_with_hash (DEFAULT_DEFS (cfun), &in, + DECL_UID (var), INSERT); + htab_remove_elt (DEFAULT_DEFS (cfun), *loc); return; } gcc_assert (TREE_CODE (def) == SSA_NAME); - loc = htab_find_slot_with_hash (default_defs, &in, DECL_UID (var), INSERT); + loc = htab_find_slot_with_hash (DEFAULT_DEFS (cfun), &in, + DECL_UID (var), INSERT); /* Default definition might be changed by tail call optimization. */ if (!*loc) { -- cgit v1.2.1