From discussion on the mailing list: https://gcc.gnu.org/ml/gcc-patches/2015-09/msg00615.html The function bb_in_region contains the following check guarded by ENABLE_CHECKING: edge e; edge_iterator ei; /* Check that there are no edges coming in the region: all the predecessors of EXIT are dominated by ENTRY. */ FOR_EACH_EDGE (e, ei, exit->preds) dominated_by_p (CDI_DOMINATORS, e->src, entry); dominated_by_p is a pure function, so the check has no effect. If it is changed to gcc_assert (dominated_by_p (CDI_DOMINATORS, e->src, entry)); It starts to ICE on several testcases, for example gcc.dg/graphite/block-1.c.
This check is irrelevant now. I'll put up a patch to remove this check.
"Fixed."
Author: rguenth Date: Thu Dec 14 14:53:40 2017 New Revision: 255636 URL: https://gcc.gnu.org/viewcvs?rev=255636&root=gcc&view=rev Log: 2017-12-14 Richard Biener <rguenther@suse.de> PR tree-optimization/67842 * sese.h (bb_in_region): Remove #if 0'ed code. Modified: trunk/gcc/ChangeLog trunk/gcc/sese.h