tree-into-ssa.c (update_ssa): Clean up by shortening the live range of DFS.

* tree-into-ssa.c (update_ssa): Clean up by shortening the
	live range of DFS.

From-SVN: r99847
This commit is contained in:
Kazu Hirata 2005-05-17 19:10:19 +00:00 committed by Kazu Hirata
parent 221ca26767
commit 9caf90a8ea
2 changed files with 21 additions and 16 deletions

View File

@ -1,3 +1,8 @@
2005-05-17 Kazu Hirata <kazu@cs.umass.edu>
* tree-into-ssa.c (update_ssa): Clean up by shortening the
live range of DFS.
2005-05-17 Hans-Peter Nilsson <hp@axis.com>
* config/cris/cris.md (ncond, ocode, rcond): Remove separate

View File

@ -2611,7 +2611,7 @@ switch_virtuals_to_full_rewrite (void)
void
update_ssa (unsigned update_flags)
{
bitmap *dfs, blocks;
bitmap blocks;
basic_block bb, start_bb;
bitmap_iterator bi;
unsigned i;
@ -2646,13 +2646,8 @@ update_ssa (unsigned update_flags)
if (insert_phi_p)
{
/* If the caller requested PHI nodes to be added, compute
dominance frontiers and initialize live-in information data
structures (DEF_BLOCKS). */
dfs = (bitmap *) xmalloc (last_basic_block * sizeof (bitmap *));
FOR_EACH_BB (bb)
dfs[bb->index] = BITMAP_ALLOC (NULL);
compute_dominance_frontiers (dfs);
/* If the caller requested PHI nodes to be added, initialize
live-in information data structures (DEF_BLOCKS). */
/* For each SSA name N, the DEF_BLOCKS table describes where the
name is defined, which blocks have PHI nodes for N, and which
@ -2663,7 +2658,6 @@ update_ssa (unsigned update_flags)
}
else
{
dfs = NULL;
def_blocks = NULL;
}
@ -2738,6 +2732,15 @@ update_ssa (unsigned update_flags)
and for symbols in SYMS_TO_RENAME. */
if (insert_phi_p)
{
bitmap *dfs;
/* If the caller requested PHI nodes to be added, compute
dominance frontiers. */
dfs = xmalloc (last_basic_block * sizeof (bitmap *));
FOR_EACH_BB (bb)
dfs[bb->index] = BITMAP_ALLOC (NULL);
compute_dominance_frontiers (dfs);
if (sbitmap_first_set_bit (old_ssa_names) >= 0)
{
/* insert_update_phi_nodes_for will call add_new_name_mapping
@ -2757,6 +2760,10 @@ update_ssa (unsigned update_flags)
insert_updated_phi_nodes_for (referenced_var (i), dfs, blocks,
update_flags);
FOR_EACH_BB (bb)
BITMAP_FREE (dfs[bb->index]);
free (dfs);
/* Insertion of PHI nodes may have added blocks to the region.
We need to re-compute START_BB to include the newly added
blocks. */
@ -2813,13 +2820,6 @@ update_ssa (unsigned update_flags)
/* Free allocated memory. */
done:
if (insert_phi_p)
{
FOR_EACH_BB (bb)
BITMAP_FREE (dfs[bb->index]);
free (dfs);
}
BITMAP_FREE (blocks);
delete_update_ssa ();