diff options
author | Diego Novillo <dnovillo@redhat.com> | 2004-07-22 16:39:49 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2004-07-22 12:39:49 -0400 |
commit | 53b4bf74eb6a52df6b3e64e49c6fc9680f10b14e (patch) | |
tree | f1ef74e5fc1c2bcc492abd6b400e131a68c5977f /gcc/tree-into-ssa.c | |
parent | 8e99fb4f70a03741b3be630a290932c4de63ce23 (diff) | |
download | gcc-53b4bf74eb6a52df6b3e64e49c6fc9680f10b14e.zip gcc-53b4bf74eb6a52df6b3e64e49c6fc9680f10b14e.tar.gz gcc-53b4bf74eb6a52df6b3e64e49c6fc9680f10b14e.tar.bz2 |
tree-into-ssa.c (set_livein_block): Fix typo in comment.
* tree-into-ssa.c (set_livein_block): Fix typo in comment.
(rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
Release SSA names that have been re-renamed.
* tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
variable.
* tree-ssa-alias.c (init_alias_info): If aliases have been
computed before, clear existing alias information.
(create_name_tags): Do no fixup PT_ANYTHING pointers.
If the new name tag for a pointer is different than the one it
had before, mark the old tag for renaming.
(replace_may_alias): New function.
(group_aliases): Call it.
(setup_pointers_and_addressables): Always call get_tmt_for.
(maybe_create_global_var): Don't create .GLOBAL_VAR more than
once.
(set_pt_anything): New local function.
(set_pt_malloc): New local function.
(merge_pointed_to_info): Don't merge pointed-to variables from
the original pointer if the destination is pointing to an
unknown location.
(add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
(add_pointed_to_var): Do not add a variable to the points-to
set if the pointer is already pointing to anywhere.
(collect_points_to_info_r): If the defining statement is a PHI
node, only merge pointed-to information if the argument has
already been visited.
(get_tmt_for): Only create a new tag if the pointer didn't
have one already.
(dump_alias_info): Emit more information.
(dump_points_to_info_for): Likewise.
* tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
try to get the annotation of an SSA_NAME.
* tree-ssa-operands.c (add_stmt_operand): Only check for empty
alias sets when checking is enabled.
* tree-ssa-pre.c (need_eh_cleanup): New local variable.
(eliminate): Mark basic blocks that will need
EH information cleaned up.
(init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
predecessor.
Initialize need_eh_cleanup.
(fini_pre): Call tree_purge_all_dead_eh_edges and
cleanup_tree_cfg if needed.
Free need_eh_cleanup.
* tree-ssa.c (verify_ssa_name): New function.
(verify_def): Call it.
Re-arrange to avoid printing too many error messages.
(verify_use): Likewise.
(verify_phi_args): Likewise.
(verify_flow_insensitive_alias_info): New function.
(verify_flow_sensitive_alias_info): New function.
(verify_alias_info): New function.
(verify_ssa): Call verify_alias_info.
Clear TREE_VISITED on all the SSA_NAMEs before scanning the
program.
Re-arrange to avoid printing too many error messages.
* tree-ssanames.c (make_ssa_name): Clear
SSA_NAME_IN_FREE_LIST.
(release_ssa_name): Never release a default definition.
(release_defs): New function.
* tree.h: Declare it.
* tree-ssa-dce.c (remove_dead_stmt): Call it.
* tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
If true, do a depth-first search. Do a breadht-first search,
otherwise.
(walk_use_def_chains): Add new argument IS_DFS.
Update all users.
* tree-flow.h (walk_use_def_chains): Update prototype.
From-SVN: r85052
Diffstat (limited to 'gcc/tree-into-ssa.c')
-rw-r--r-- | gcc/tree-into-ssa.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c index 027a90b..4d5992e 100644 --- a/gcc/tree-into-ssa.c +++ b/gcc/tree-into-ssa.c @@ -608,7 +608,7 @@ set_livein_block (tree var, basic_block bb) /* If the use operand pointed to by OP_P needs to be renamed, then strip away any SSA_NAME wrapping the operand, set *UID_P to the underlying variable's uid, and return true. Otherwise return false. If the operand was an - SSA_NAME, change it to the stipped name. */ + SSA_NAME, change it to the stripped name. */ static bool prepare_use_operand_for_rename (use_operand_p op_p, size_t *uid_p) @@ -1822,9 +1822,8 @@ rewrite_ssa_into_ssa (bitmap names_to_rename) /* We no longer need this bitmap, clear and free it. */ sbitmap_free (mark_def_sites_global_data.kills); - for (i = 0; i < num_ssa_names; i++) - if (ssa_name (i)) - set_current_def (ssa_name (i), NULL_TREE); + for (i = 1; i < num_ssa_names; i++) + set_current_def (ssa_name (i), NULL_TREE); /* Insert PHI nodes at dominance frontiers of definition blocks. */ insert_phi_nodes (dfs, names_to_rename); @@ -1856,6 +1855,9 @@ rewrite_ssa_into_ssa (bitmap names_to_rename) /* Finalize the dominator walker. */ fini_walk_dominator_tree (&walk_data); + EXECUTE_IF_SET_IN_BITMAP (names_to_rename, 0, i, + release_ssa_name (ssa_name (i))); + sbitmap_free (snames_to_rename); timevar_pop (TV_TREE_SSA_REWRITE_BLOCKS); @@ -1874,16 +1876,16 @@ rewrite_ssa_into_ssa (bitmap names_to_rename) htab_delete (def_blocks); - for (i = 0; i < num_ssa_names; i++) + for (i = 1; i < num_ssa_names; i++) { name = ssa_name (i); - if (!name - || !SSA_NAME_AUX (name)) + if (!SSA_NAME_AUX (name)) continue; free (SSA_NAME_AUX (name)); SSA_NAME_AUX (name) = NULL; } + timevar_pop (TV_TREE_SSA_OTHER); } |