aboutsummaryrefslogtreecommitdiff
path: root/gcc/sel-sched.c
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@gcc.gnu.org>2010-01-14 13:28:47 +0300
committerAlexander Monakov <amonakov@gcc.gnu.org>2010-01-14 13:28:47 +0300
commitb59ab5709ef2cfc6c1cde6ed91f13de3bbe5c54e (patch)
tree58d8950f43c2356fc70a2c8f766cbde3b179e266 /gcc/sel-sched.c
parent0666ff4e33e39bd94ea8f34bf4ef1af1a004bd53 (diff)
downloadgcc-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.c18
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)