diff options
author | Vladimir Kargov <kargov@gmail.com> | 2010-08-11 20:29:10 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-08-11 20:29:10 +0000 |
commit | f4ce375dd84cef63084ae910367a8f32b595d8eb (patch) | |
tree | 179c0e30f56deacb4321b27a2f422431e26876a2 /gcc | |
parent | 15d17127b2a3db62eb74a39e56bd6b63b1d8ef57 (diff) | |
download | gcc-f4ce375dd84cef63084ae910367a8f32b595d8eb.zip gcc-f4ce375dd84cef63084ae910367a8f32b595d8eb.tar.gz gcc-f4ce375dd84cef63084ae910367a8f32b595d8eb.tar.bz2 |
Add loop_exits_from_bb_p.
2010-07-20 Vladimir Kargov <kargov@gmail.com>
Sebastian Pop <sebastian.pop@amd.com>
* cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
(loop_exits_from_bb_p): New.
* cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
(loop_exits_from_bb_p): Declared.
* graphite-scop-detection.c (scopdet_basic_block_info): Call
loop_exits_to_bb_p.
Co-Authored-By: Sebastian Pop <sebastian.pop@amd.com>
From-SVN: r163153
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/ChangeLog.graphite | 10 | ||||
-rw-r--r-- | gcc/cfgloop.c | 19 | ||||
-rw-r--r-- | gcc/cfgloop.h | 3 | ||||
-rw-r--r-- | gcc/graphite-scop-detection.c | 2 |
5 files changed, 40 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0362142..acd26fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2010-08-02 Vladimir Kargov <kargov@gmail.com> + Sebastian Pop <sebastian.pop@amd.com> + + * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p. + (loop_exits_from_bb_p): New. + * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p. + (loop_exits_from_bb_p): Declared. + * graphite-scop-detection.c (scopdet_basic_block_info): Call + loop_exits_to_bb_p. + 2010-08-02 Sebastian Pop <sebastian.pop@amd.com> * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index e4d59ce..96034ad 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,4 +1,14 @@ 2010-07-20 Vladimir Kargov <kargov@gmail.com> + Sebastian Pop <sebastian.pop@amd.com> + + * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p. + (loop_exits_from_bb_p): New. + * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p. + (loop_exits_from_bb_p): Declared. + * graphite-scop-detection.c (scopdet_basic_block_info): Call + loop_exits_to_bb_p. + +2010-07-20 Vladimir Kargov <kargov@gmail.com> * refined-regions.c: Include tree-pass.h, cfgloop.h, gimple.h, and tree-data-ref.h. diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c index 24f0ebc..d114563 100644 --- a/gcc/cfgloop.c +++ b/gcc/cfgloop.c @@ -1620,10 +1620,10 @@ single_exit (const struct loop *loop) return NULL; } -/* Returns true when BB has an edge exiting LOOP. */ +/* Returns true when BB has an incoming edge exiting LOOP. */ bool -is_loop_exit (struct loop *loop, basic_block bb) +loop_exits_to_bb_p (struct loop *loop, basic_block bb) { edge e; edge_iterator ei; @@ -1634,3 +1634,18 @@ is_loop_exit (struct loop *loop, basic_block bb) return false; } + +/* Returns true when BB has an outgoing edge exiting LOOP. */ + +bool +loop_exits_from_bb_p (struct loop *loop, basic_block bb) +{ + edge e; + edge_iterator ei; + + FOR_EACH_EDGE (e, ei, bb->succs) + if (loop_exit_edge_p (loop, e)) + return true; + + return false; +} diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h index 1f0e3ca..722aa33 100644 --- a/gcc/cfgloop.h +++ b/gcc/cfgloop.h @@ -232,7 +232,8 @@ extern int num_loop_insns (const struct loop *); extern int average_num_loop_insns (const struct loop *); extern unsigned get_loop_level (const struct loop *); extern bool loop_exit_edge_p (const struct loop *, const_edge); -extern bool is_loop_exit (struct loop *, basic_block); +extern bool loop_exits_to_bb_p (struct loop *, basic_block); +extern bool loop_exits_from_bb_p (struct loop *, basic_block); extern void mark_loop_exit_edges (void); /* Loops & cfg manipulation. */ diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c index baa4c34..07d94d0 100644 --- a/gcc/graphite-scop-detection.c +++ b/gcc/graphite-scop-detection.c @@ -594,7 +594,7 @@ scopdet_basic_block_info (basic_block bb, loop_p outermost_loop, { /* Ignore loop exits. They will be handled after the loop body. */ - if (is_loop_exit (loop, e->dest)) + if (loop_exits_to_bb_p (loop, e->dest)) { result.exits = true; continue; |