diff options
author | Alexander Monakov <amonakov@gcc.gnu.org> | 2010-01-14 13:28:47 +0300 |
---|---|---|
committer | Alexander Monakov <amonakov@gcc.gnu.org> | 2010-01-14 13:28:47 +0300 |
commit | b59ab5709ef2cfc6c1cde6ed91f13de3bbe5c54e (patch) | |
tree | 58d8950f43c2356fc70a2c8f766cbde3b179e266 /gcc/sel-sched.c | |
parent | 0666ff4e33e39bd94ea8f34bf4ef1af1a004bd53 (diff) | |
download | gcc-b59ab5709ef2cfc6c1cde6ed91f13de3bbe5c54e.zip gcc-b59ab5709ef2cfc6c1cde6ed91f13de3bbe5c54e.tar.gz gcc-b59ab5709ef2cfc6c1cde6ed91f13de3bbe5c54e.tar.bz2 |
re PR middle-end/42245 (ICE in verify_backedges for 197.parser with sel-sched)
2010-01-14 Andrey Belevantsev <abel@ispras.ru>
Alexander Monakov <amonakov@ispras.ru>
PR middle-end/42245
* sel-sched-ir.c (sel_recompute_toporder): New. Use it...
(maybe_tidy_empty_bb): ... here. Make static. Add new
argument. Update all callers.
(tidy_control_flow): ... and here. Recompute topological order
of basic blocks in region if necessary.
(sel_redirect_edge_and_branch): Change return type. Return true
if topological order might have been invalidated.
(purge_empty_blocks): Export and move from...
* sel-sched.c (purge_empty_blocks): ... here.
* sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
(maybe_tidy_empty_bb): Delete prototype.
(purge_empty_blocks): Declare.
* gcc.dg/pr42245.c: New.
* gcc.dg/pr42245-2.c: New.
From-SVN: r155890
Diffstat (limited to 'gcc/sel-sched.c')
-rw-r--r-- | gcc/sel-sched.c | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c index 27c0f21..4ca8ab2 100644 --- a/gcc/sel-sched.c +++ b/gcc/sel-sched.c @@ -6765,24 +6765,6 @@ setup_current_loop_nest (int rgn) gcc_assert (LOOP_MARKED_FOR_PIPELINING_P (current_loop_nest)); } -/* Purge meaningless empty blocks in the middle of a region. */ -static void -purge_empty_blocks (void) -{ - /* Do not attempt to delete preheader. */ - int i = sel_is_loop_preheader_p (BASIC_BLOCK (BB_TO_BLOCK (0))) ? 1 : 0; - - while (i < current_nr_blocks) - { - basic_block b = BASIC_BLOCK (BB_TO_BLOCK (i)); - - if (maybe_tidy_empty_bb (b)) - continue; - - i++; - } -} - /* Compute instruction priorities for current region. */ static void sel_compute_priorities (int rgn) |