cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and EDGE_IRREDUCIBLE_LOOP.

2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>

	* cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
	EDGE_IRREDUCIBLE_LOOP.

From-SVN: r141549
This commit is contained in:
Sebastian Pop 2008-11-03 16:17:33 +00:00 committed by Sebastian Pop
parent f4c59f4fd2
commit ede7cba0dd
2 changed files with 15 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
* cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
EDGE_IRREDUCIBLE_LOOP.
2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com>
* config/bfin/bfin.c (bfin_optimize_loop): Properly handle case

View file

@ -425,6 +425,7 @@ edge
split_block (basic_block bb, void *i)
{
basic_block new_bb;
edge res;
if (!cfg_hooks->split_block)
internal_error ("%s does not support split_block", cfg_hooks->name);
@ -450,7 +451,15 @@ split_block (basic_block bb, void *i)
bb->loop_father->latch = new_bb;
}
return make_single_succ_edge (bb, new_bb, EDGE_FALLTHRU);
res = make_single_succ_edge (bb, new_bb, EDGE_FALLTHRU);
if (bb->flags & BB_IRREDUCIBLE_LOOP)
{
new_bb->flags |= BB_IRREDUCIBLE_LOOP;
res->flags |= EDGE_IRREDUCIBLE_LOOP;
}
return res;
}
/* Splits block BB just after labels. The newly created edge is returned. */