Hi,
> Just a nit, can't you break out of the loop when irred_invalidated is set to
> true as well? There is no need to look through any further edges. I.e.
> perhaps:
> if (!irred_invalidated)
> FOR_EACH_EDGE (ae, ei, e->src->succs)
> if (ae != e
> && ae->dest != EXIT_BLOCK_P
> Just a nit, can't you break out of the loop when irred_invalidated is set to
> true as well? There is no need to look through any further edges. I.e.
Sure, though we do have horrible time complexity in case irreducible
regions are including recomputing the whole CFG flags after every path
remo
On Wed, Dec 28, 2011 at 07:31:57PM +0100, Jan Hubicka wrote:
> *** cfgloopmanip.c(revision 182708)
> --- cfgloopmanip.c(working copy)
> *** remove_path (edge e)
> *** 290,295
> --- 290,296
> int i, nrem, n_bord_bbs;
> sbitmap seen;
> bool irred_invalidated
Hi,
in this testcase peeling of loop contaiing irreducible region leads to
increasing size of the region (by removing the conditional path into it).
remove_path is not quite ready for this scenario. Still it would be nice to
avoid us creating irreducible region in cases where they are not.
Bootst