Allow several reductions in a reduction PBB.
2011-01-25 Sebastian Pop <sebastian.pop@amd.com> * graphite-dependences.c (reduction_dr_1): Allow several reductions in a reduction PBB. * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs that have already been marked as PBB_IS_REDUCTION. From-SVN: r169212
This commit is contained in:
parent
3a292d5909
commit
c513da01e3
4 changed files with 21 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
* graphite-dependences.c (reduction_dr_1): Allow several reductions
|
||||
in a reduction PBB.
|
||||
* graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
|
||||
that have already been marked as PBB_IS_REDUCTION.
|
||||
|
||||
2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
* graphite-scop-detection.c (same_close_phi_node): New.
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2011-01-17 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
* graphite-dependences.c (reduction_dr_1): Allow several reductions
|
||||
in a reduction PBB.
|
||||
* graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
|
||||
that have already been marked as PBB_IS_REDUCTION.
|
||||
|
||||
2011-01-17 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
* graphite-scop-detection.c (same_close_phi_node): New.
|
||||
|
|
|
@ -571,10 +571,11 @@ reduction_dr_1 (poly_bb_p pbb1, poly_dr_p pdr1, poly_dr_p pdr2)
|
|||
poly_dr_p pdr;
|
||||
|
||||
FOR_EACH_VEC_ELT (poly_dr_p, PBB_DRS (pbb1), i, pdr)
|
||||
if (PDR_TYPE (pdr) == PDR_WRITE)
|
||||
break;
|
||||
if (PDR_TYPE (pdr) == PDR_WRITE
|
||||
&& same_pdr_p (pdr, pdr1) && same_pdr_p (pdr, pdr2))
|
||||
return true;
|
||||
|
||||
return same_pdr_p (pdr, pdr1) && same_pdr_p (pdr, pdr2);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Return true when the data dependence relation between the data
|
||||
|
|
|
@ -2640,7 +2640,9 @@ split_reduction_stmt (scop_p scop, gimple stmt)
|
|||
|
||||
/* Do not split basic blocks with no writes to memory: the reduction
|
||||
will be the only write to memory. */
|
||||
if (nb_data_writes_in_bb (bb) == 0)
|
||||
if (nb_data_writes_in_bb (bb) == 0
|
||||
/* Or if we have already marked BB as a reduction. */
|
||||
|| PBB_IS_REDUCTION (pbb_from_bb (bb)))
|
||||
return bb;
|
||||
|
||||
e1 = split_pbb (scop, pbb, bb, stmt);
|
||||
|
|
Loading…
Add table
Reference in a new issue