[Bug tree-optimization/83410] [8 regression] libgomp.graphite/force-parallel-4.c etc. FAIL

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Dec 18 10:03:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83410

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
So it's SCOP detection failing in

      /* Check for unstructured control flow: CFG not generated by structured
         if-then-else.  */
      if (bb->succs->length () > 1)
        {
          edge e;
          edge_iterator ei;
          FOR_EACH_EDGE (e, ei, bb->succs)
            if (!dominated_by_p (CDI_POST_DOMINATORS, bb, e->dest)
                && !dominated_by_p (CDI_DOMINATORS, e->dest, bb))
              return true;
        }

for the result because we have one if arm containing the loop exit
and the other not.  I'm not exactly sure what can go wrong and why
this test exists...  as usual it didn't come with a testcase (r232657).

For autopar we also like to lift the single-loop-SCOP restriction.

Note that when I remove that check we still FAIL because we are not able
to compute the number of iterations of such loop anymore
(number_of_iterations_exit fails).  So I think this is a generally bad
threading
before loop opts if it causes this!  This is probably due to the
fact that the block with the exit test doesn't dominate the latch block
(sth to test in threading?).


More information about the Gcc-bugs mailing list