On Tue, Nov 25, 2014 at 1:01 AM, Tom de Vries <tom_devr...@mentor.com> wrote: > Richard, > > I ran into a problem with my oacc kernels directive patch series where > tail-merge added another entry into a region that was previously > single-entry-single-exit. > > That resulted in hitting this assert in calc_dfs_tree: > ... > /* This aborts e.g. when there is _no_ path from ENTRY to EXIT at all. */ > gcc_assert (di->nodes == (unsigned int) n_basic_blocks_for_fn (cfun) - 1); > ... > during a call to move_sese_region_to_fn. > > This patch makes sure that we abort earlier, with a clearer message of what > is actually wrong. > > Bootstrapped and reg-tested on x86_64. > > OK for trunk/stage3?
I believe someone made the function work for SEME regions and I believe it is actually used to copy loops with multiple exits so I don't see how the patch can work in these cases? Thanks, Richard. > Thanks, > - Tom