* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
Discard unstructured if-then-else regions.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232657
+2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
+ Sebastian Pop <s.pop@samsung.com>
+
+ * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
+ Discard unstructured if-then-else regions.
+
2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
Sebastian Pop <s.pop@samsung.com>
return true;
}
+ /* 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;
+ }
+
/* Collect all loops in the current region. */
loop_p loop = bb->loop_father;
if (loop_in_sese_p (loop, scop))