+2015-10-05 Aditya Kumar <hiraditya@msn.com>
+
+ * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
+ which are in this region are passed so gcc_assert and remove redundant
+ computation.
+ * sese.c (sese_build_liveouts): Pass only those bbs which are not in region.
+ (sese_bad_liveouts_use): Only BBs which are not in region are passed so
+ gcc_assert on that and remove unnecessary computation.
+ (sese_build_liveouts_use): Same.
+
2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
* graphite-dependences.c (scop_get_reads): Renamed scop->context
tree nb_iters = number_of_latch_executions (loop);
sese region = SCOP_REGION (scop);
+ gcc_assert (loop_in_sese_p (loop, region));
isl_set *inner = isl_set_copy (outer);
int pos = isl_set_dim (outer, isl_dim_set);
else
gcc_unreachable ();
- if (loop->inner && loop_in_sese_p (loop->inner, region))
+ if (loop->inner)
build_loop_iteration_domains (scop, loop->inner, nb + 1,
isl_set_copy (inner), doms);
sese_build_liveouts_use (sese region, bitmap liveouts, basic_block bb,
tree use)
{
- unsigned ver;
- basic_block def_bb;
-
+ gcc_assert (!bb_in_sese_p (bb, region));
if (TREE_CODE (use) != SSA_NAME)
return;
- ver = SSA_NAME_VERSION (use);
- def_bb = gimple_bb (SSA_NAME_DEF_STMT (use));
+ basic_block def_bb = gimple_bb (SSA_NAME_DEF_STMT (use));
- if (!def_bb
- || !bb_in_sese_p (def_bb, region)
- || bb_in_sese_p (bb, region))
+ if (!def_bb || !bb_in_sese_p (def_bb, region))
return;
+ unsigned ver = SSA_NAME_VERSION (use);
bitmap_set_bit (liveouts, ver);
}
sese_bad_liveouts_use (sese region, bitmap liveouts, basic_block bb,
tree use)
{
- unsigned ver;
- basic_block def_bb;
+ gcc_assert (!bb_in_sese_p (bb, region));
if (TREE_CODE (use) != SSA_NAME)
return false;
- ver = SSA_NAME_VERSION (use);
+ unsigned ver = SSA_NAME_VERSION (use);
/* If it's in liveouts, the variable will get a new PHI node, and
the debug use will be properly adjusted. */
if (bitmap_bit_p (liveouts, ver))
return false;
- def_bb = gimple_bb (SSA_NAME_DEF_STMT (use));
+ basic_block def_bb = gimple_bb (SSA_NAME_DEF_STMT (use));
- if (!def_bb
- || !bb_in_sese_p (def_bb, region)
- || bb_in_sese_p (bb, region))
+ if (!def_bb || !bb_in_sese_p (def_bb, region))
return false;
return true;
{
basic_block bb;
+ /* FIXME: We could start iterating form the successor of sese. */
FOR_EACH_BB_FN (bb, cfun)
- sese_build_liveouts_bb (region, liveouts, bb);
+ if (!bb_in_sese_p (bb, region))
+ sese_build_liveouts_bb (region, liveouts, bb);
+
+ /* FIXME: We could start iterating form the successor of sese. */
if (MAY_HAVE_DEBUG_STMTS)
FOR_EACH_BB_FN (bb, cfun)
- sese_reset_debug_liveouts_bb (region, liveouts, bb);
+ if (!bb_in_sese_p (bb, region))
+ sese_reset_debug_liveouts_bb (region, liveouts, bb);
}
/* Builds a new SESE region from edges ENTRY and EXIT. */