Commit d731ee04 by Bin Cheng Committed by Bin Cheng

tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record BB's single pred and…

tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record BB's single pred and update the father loop's latch info later.


	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
	BB's single pred and update the father loop's latch info later.

From-SVN: r208527
parent 9f493d9d
2014-03-13 Bin Cheng <bin.cheng@arm.com>
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
BB's single pred and update the father loop's latch info later.
2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
......
......@@ -820,6 +820,12 @@ remove_forwarder_block_with_phi (basic_block bb)
&& DECL_NONLOCAL (gimple_label_label (label)))
return false;
/* Record BB's single pred in case we need to update the father
loop's latch information later. */
basic_block pred = NULL;
if (single_pred_p (bb))
pred = single_pred (bb);
/* Redirect each incoming edge to BB to DEST. */
while (EDGE_COUNT (bb->preds) > 0)
{
......@@ -904,6 +910,11 @@ remove_forwarder_block_with_phi (basic_block bb)
set_immediate_dominator (CDI_DOMINATORS, dest, dom);
/* Adjust latch infomation of BB's parent loop as otherwise
the cfg hook has a hard time not to kill the loop. */
if (current_loops && bb->loop_father->latch == bb)
bb->loop_father->latch = pred;
/* Remove BB since all of BB's incoming edges have been redirected
to DEST. */
delete_basic_block (bb);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment