aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloopmanip.c
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2007-07-20 03:29:43 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2007-07-20 01:29:43 +0000
commitd24a32a1860b9d5a23ccca40cc70d165cd285e8b (patch)
treec81b2b6144d7b5c7ede0be2fbe0f15356a34c424 /gcc/cfgloopmanip.c
parent9143267b2119f7cded46e34402ec37665a9f045a (diff)
downloadgcc-d24a32a1860b9d5a23ccca40cc70d165cd285e8b.zip
gcc-d24a32a1860b9d5a23ccca40cc70d165cd285e8b.tar.gz
gcc-d24a32a1860b9d5a23ccca40cc70d165cd285e8b.tar.bz2
tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands of compare to the same type.
* tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands of compare to the same type. * cfgloopmanip.c (add_loop): Update information about loop exits. (loop_version): Remove the innermost loop requirement. * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds to sizetype for pointers. From-SVN: r126796
Diffstat (limited to 'gcc/cfgloopmanip.c')
-rw-r--r--gcc/cfgloopmanip.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index 92ab088..83c4c57 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -411,6 +411,8 @@ add_loop (struct loop *loop, struct loop *outer)
basic_block *bbs;
int i, n;
struct loop *subloop;
+ edge e;
+ edge_iterator ei;
/* Add it to loop structure. */
place_new_loop (loop);
@@ -441,6 +443,15 @@ add_loop (struct loop *loop, struct loop *outer)
}
}
+ /* Update the information about loop exit edges. */
+ for (i = 0; i < n; i++)
+ {
+ FOR_EACH_EDGE (e, ei, bbs[i]->succs)
+ {
+ rescan_loop_exit (e, false, false);
+ }
+ }
+
free (bbs);
}
@@ -1283,10 +1294,6 @@ loop_version (struct loop *loop,
struct loop *nloop;
basic_block cond_bb;
- /* CHECKME: Loop versioning does not handle nested loop at this point. */
- if (loop->inner)
- return NULL;
-
/* Record entry and latch edges for the loop */
entry = loop_preheader_edge (loop);
irred_flag = entry->flags & EDGE_IRREDUCIBLE_LOOP;