summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-manip.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-04-09 10:48:59 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-04-09 10:48:59 +0000
commit3d741091eef9e0d94e4773371542f5a3a6a00cbb (patch)
tree8cf2f31b8673f171174f19ae2e428276959943e2 /gcc/tree-ssa-loop-manip.c
parent39307ba788ba09db3d35eb8d920085bb9aebbece (diff)
downloadgcc-3d741091eef9e0d94e4773371542f5a3a6a00cbb.tar.gz
expr.c (build_java_binop): Pass a type to build_int_cst.
2013-04-09 Richard Biener <rguenther@suse.de> java/ * expr.c (build_java_binop): Pass a type to build_int_cst. * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid work that is not necessary. From-SVN: r197626
Diffstat (limited to 'gcc/tree-ssa-loop-manip.c')
-rw-r--r--gcc/tree-ssa-loop-manip.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
index a0516c45c4a..7101f30d4e6 100644
--- a/gcc/tree-ssa-loop-manip.c
+++ b/gcc/tree-ssa-loop-manip.c
@@ -489,7 +489,6 @@ find_uses_to_rename (bitmap changed_bbs, bitmap *use_blocks, bitmap need_phis)
void
rewrite_into_loop_closed_ssa (bitmap changed_bbs, unsigned update_flag)
{
- bitmap *loop_exits;
bitmap *use_blocks;
bitmap names_to_rename;
@@ -505,11 +504,6 @@ rewrite_into_loop_closed_ssa (bitmap changed_bbs, unsigned update_flag)
names_to_rename = BITMAP_ALLOC (&loop_renamer_obstack);
- /* An array of bitmaps where LOOP_EXITS[I] is the set of basic blocks
- that are the destination of an edge exiting loop number I. */
- loop_exits = XNEWVEC (bitmap, number_of_loops ());
- get_loops_exits (loop_exits);
-
/* Uses of names to rename. We don't have to initialize this array,
because we know that we will only have entries for the SSA names
in NAMES_TO_RENAME. */
@@ -518,17 +512,26 @@ rewrite_into_loop_closed_ssa (bitmap changed_bbs, unsigned update_flag)
/* Find the uses outside loops. */
find_uses_to_rename (changed_bbs, use_blocks, names_to_rename);
- /* Add the PHI nodes on exits of the loops for the names we need to
- rewrite. */
- add_exit_phis (names_to_rename, use_blocks, loop_exits);
+ if (!bitmap_empty_p (names_to_rename))
+ {
+ /* An array of bitmaps where LOOP_EXITS[I] is the set of basic blocks
+ that are the destination of an edge exiting loop number I. */
+ bitmap *loop_exits = XNEWVEC (bitmap, number_of_loops ());
+ get_loops_exits (loop_exits);
+
+ /* Add the PHI nodes on exits of the loops for the names we need to
+ rewrite. */
+ add_exit_phis (names_to_rename, use_blocks, loop_exits);
+
+ free (loop_exits);
+
+ /* Fix up all the names found to be used outside their original
+ loops. */
+ update_ssa (TODO_update_ssa);
+ }
bitmap_obstack_release (&loop_renamer_obstack);
free (use_blocks);
- free (loop_exits);
-
- /* Fix up all the names found to be used outside their original
- loops. */
- update_ssa (TODO_update_ssa);
}
/* Check invariants of the loop closed ssa form for the USE in BB. */