aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-into-ssa.c
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2005-05-17 19:10:19 +0000
committerKazu Hirata <kazu@cs.umass.edu>2005-05-17 19:10:19 +0000
commit55148d6e2282dca7c61d4ec10c0fd4824a1629ab (patch)
tree544422dc0a2a80acc7cc68573bdbe1f17698abc8 /gcc/tree-into-ssa.c
parentab51e021e1a4c23ad47ad4c77e1443894b5c511d (diff)
* tree-into-ssa.c (update_ssa): Clean up by shortening the
live range of DFS. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@99847 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-into-ssa.c')
-rw-r--r--gcc/tree-into-ssa.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index 2e4c7f35d3d..4a95072414d 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -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 ();