Commit 8f225262 by Aditya Kumar Committed by Sebastian Pop

check for unstructured control flow

	* 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
parent d8d262cf
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>
* graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
(cleanup_loop_iter_dom): Remove.
(build_loop_iteration_domains): Remove.
......
......@@ -1078,6 +1078,18 @@ scop_detection::harmful_loop_in_region (sese_l scop) const
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))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment