preserve EDGE_DFS_BACK across split_edge
This moves EDGE_DFS_BACK to the appropriate edge when the split edge had it set. 2020-05-12 Richard Biener <rguenther@suse.de> * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
This commit is contained in:
parent
6b41920bd5
commit
5e3c2d4b23
|
@ -1,3 +1,7 @@
|
|||
2020-05-12 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set.
|
||||
|
||||
2020-05-12 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR sanitizer/95033
|
||||
|
|
|
@ -640,6 +640,7 @@ split_edge (edge e)
|
|||
profile_count count = e->count ();
|
||||
edge f;
|
||||
bool irr = (e->flags & EDGE_IRREDUCIBLE_LOOP) != 0;
|
||||
bool back = (e->flags & EDGE_DFS_BACK) != 0;
|
||||
class loop *loop;
|
||||
basic_block src = e->src, dest = e->dest;
|
||||
|
||||
|
@ -659,6 +660,11 @@ split_edge (edge e)
|
|||
single_pred_edge (ret)->flags |= EDGE_IRREDUCIBLE_LOOP;
|
||||
single_succ_edge (ret)->flags |= EDGE_IRREDUCIBLE_LOOP;
|
||||
}
|
||||
if (back)
|
||||
{
|
||||
single_pred_edge (ret)->flags &= ~EDGE_DFS_BACK;
|
||||
single_succ_edge (ret)->flags |= EDGE_DFS_BACK;
|
||||
}
|
||||
|
||||
if (dom_info_available_p (CDI_DOMINATORS))
|
||||
set_immediate_dominator (CDI_DOMINATORS, ret, single_pred (ret));
|
||||
|
|
Loading…
Reference in New Issue