diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2011-01-25 06:47:21 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2011-01-25 06:47:21 +0000 |
commit | c513da01e3e9f1d8516858b995a3a9c274494f1a (patch) | |
tree | 7fda3df477b00ff356e2e1b06aea838d215ecfee | |
parent | 3a292d59099b0932abcad997e618d3d2ff22b8f3 (diff) | |
download | gcc-c513da01e3e9f1d8516858b995a3a9c274494f1a.zip gcc-c513da01e3e9f1d8516858b995a3a9c274494f1a.tar.gz gcc-c513da01e3e9f1d8516858b995a3a9c274494f1a.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ChangeLog.graphite | 7 | ||||
-rw-r--r-- | gcc/graphite-dependences.c | 7 | ||||
-rw-r--r-- | gcc/graphite-sese-to-poly.c | 4 |
4 files changed, 21 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cb76451..e67d343 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 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. (remove_duplicate_close_phi): New. (make_close_phi_nodes_unique): New. diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 1782e76..091bbca 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,5 +1,12 @@ 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. (remove_duplicate_close_phi): New. (make_close_phi_nodes_unique): New. diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c index d45c7ce..b9b1d1b 100644 --- a/gcc/graphite-dependences.c +++ b/gcc/graphite-dependences.c @@ -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 diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 301fb96..a7178ef 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -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); |