summaryrefslogtreecommitdiff
path: root/gcc/sel-sched.c
diff options
context:
space:
mode:
authoramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-28 10:01:52 +0000
committeramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-28 10:01:52 +0000
commitdf6266b93bca0b815d599daec16087e220183641 (patch)
tree49f2c287d751ab49352e33fce6814bbe9a083ce9 /gcc/sel-sched.c
parenta0c9474116d8e5d450630e0dcbcb8574a1d1e3c9 (diff)
downloadgcc-df6266b93bca0b815d599daec16087e220183641.tar.gz
gcc/testsuite/Changelog:
2009-04-28 Alexander Monakov <amonakov@ispras.ru> * gcc.target/ia64/20071210-2.c: New testcase. gcc/Changelog: 2009-04-28 Alexander Monakov <amonakov@ispras.ru> * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a block if there are complex incoming edges. (sel_merge_blocks): Remove useless assert. (sel_redirect_edge_and_branch): Check that edge was redirected. * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert. (sel_find_rgns): Delete declaration. * sel-sched.c (purge_empty_blocks): Attempt to remove first block of the region when it is not a preheader. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146882 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sel-sched.c')
-rw-r--r--gcc/sel-sched.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index e524d02516f..b1a33beb7d0 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -6483,9 +6483,10 @@ setup_current_loop_nest (int rgn)
static void
purge_empty_blocks (void)
{
- int i ;
+ /* Do not attempt to delete preheader. */
+ int i = sel_is_loop_preheader_p (BASIC_BLOCK (BB_TO_BLOCK (0))) ? 1 : 0;
- for (i = 1; i < current_nr_blocks; )
+ while (i < current_nr_blocks)
{
basic_block b = BASIC_BLOCK (BB_TO_BLOCK (i));