diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2005-05-17 19:10:19 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@cs.umass.edu> | 2005-05-17 19:10:19 +0000 |
commit | 55148d6e2282dca7c61d4ec10c0fd4824a1629ab (patch) | |
tree | 544422dc0a2a80acc7cc68573bdbe1f17698abc8 /gcc/tree-into-ssa.c | |
parent | ab51e021e1a4c23ad47ad4c77e1443894b5c511d (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.c | 32 |
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 (); |