aboutsummaryrefslogtreecommitdiff
path: root/gcc/haifa-sched.c
diff options
context:
space:
mode:
authorAndrey Belevantsev <abel@ispras.ru>2010-12-08 16:55:57 +0300
committerAndrey Belevantsev <abel@gcc.gnu.org>2010-12-08 16:55:57 +0300
commit00c4e97c949ee249c6ed983945d9c0e369dce6e2 (patch)
tree9de16294b5bf2aded7c916f41b6b50f5f2bb4670 /gcc/haifa-sched.c
parentc61f6330e845b0f734f657711bae897f5b0ae1c0 (diff)
downloadgcc-00c4e97c949ee249c6ed983945d9c0e369dce6e2.zip
gcc-00c4e97c949ee249c6ed983945d9c0e369dce6e2.tar.gz
gcc-00c4e97c949ee249c6ed983945d9c0e369dce6e2.tar.bz2
re PR target/43603 (gcc-4.4.3 ICE on ia64 with -O3)
PR target/43603 * haifa-sched.c (sched_create_recovery_edges): Update dominator info. * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info after deleting an empty block. (tidy_control_flow): Also verify dominators. (sel_remove_bb): Update dominator info after removing a block. (sel_redirect_edge_and_branch_force): Assert that no unreachable blocks will be created. Update dominator info. (sel_redirect_edge_and_branch): Update dominator info when basic blocks do not become unreachable. (sel_remove_loop_preheader): Update dominator info. From-SVN: r167588
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r--gcc/haifa-sched.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index a22baf9..bd3b84c 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -4467,6 +4467,8 @@ sched_create_recovery_edges (basic_block first_bb, basic_block rec,
edge_flags = 0;
make_single_succ_edge (rec, second_bb, edge_flags);
+ if (dom_info_available_p (CDI_DOMINATORS))
+ set_immediate_dominator (CDI_DOMINATORS, rec, first_bb);
}
/* This function creates recovery code for INSN. If MUTATE_P is nonzero,