diff options
author | Andrey Belevantsev <abel@ispras.ru> | 2010-12-08 16:55:57 +0300 |
---|---|---|
committer | Andrey Belevantsev <abel@gcc.gnu.org> | 2010-12-08 16:55:57 +0300 |
commit | 00c4e97c949ee249c6ed983945d9c0e369dce6e2 (patch) | |
tree | 9de16294b5bf2aded7c916f41b6b50f5f2bb4670 /gcc/haifa-sched.c | |
parent | c61f6330e845b0f734f657711bae897f5b0ae1c0 (diff) | |
download | gcc-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.c | 2 |
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, |