diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-08-11 20:29:51 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-08-11 20:29:51 +0000 |
commit | 4ee23fa87409de023a260a9a6f05027982a8b2c7 (patch) | |
tree | 089c19f9bbec168bf041223e62e71a1e2c7ce4e9 /gcc | |
parent | 1c2a7491be7c2f03af404ace3956ad2bc356afae (diff) | |
download | gcc-4ee23fa87409de023a260a9a6f05027982a8b2c7.zip gcc-4ee23fa87409de023a260a9a6f05027982a8b2c7.tar.gz gcc-4ee23fa87409de023a260a9a6f05027982a8b2c7.tar.bz2 |
Call scev_analyzable_p only on is_gimple_reg.
2010-07-26 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c
(rewrite_commutative_reductions_out_of_ssa_loop): Call
scev_analyzable_p only on is_gimple_reg
* gcc.dg/graphite/id-25.c: New.
From-SVN: r163158
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ChangeLog.graphite | 8 | ||||
-rw-r--r-- | gcc/graphite-sese-to-poly.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/graphite/id-25.c | 34 |
5 files changed, 56 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aa87d60..92cae38 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2010-08-02 Sebastian Pop <sebastian.pop@amd.com> + * graphite-sese-to-poly.c + (rewrite_commutative_reductions_out_of_ssa_loop): Call + scev_analyzable_p only on is_gimple_reg + +2010-08-02 Sebastian Pop <sebastian.pop@amd.com> + * graphite-sese-to-poly.c (propagate_expr_outside_region): New. (rewrite_close_phi_out_of_ssa): Propagate constant values or parametric expressions outside the scop region. diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 0ed18ef..65607ec 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,11 @@ +2010-07-26 Sebastian Pop <sebastian.pop@amd.com> + + * graphite-sese-to-poly.c + (rewrite_commutative_reductions_out_of_ssa_loop): Call + scev_analyzable_p only on is_gimple_reg + + * gcc.dg/graphite/id-25.c: New. + 2010-07-22 Sebastian Pop <sebastian.pop@amd.com> * graphite-sese-to-poly.c (propagate_expr_outside_region): New. diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 574a25b..ae8518f 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -2950,12 +2950,15 @@ rewrite_commutative_reductions_out_of_ssa_loop (loop_p loop, { gimple_stmt_iterator gsi; edge exit = single_exit (loop); + tree res; if (!exit) return; for (gsi = gsi_start_phis (exit->dest); !gsi_end_p (gsi); gsi_next (&gsi)) - if (!scev_analyzable_p (gimple_phi_result (gsi_stmt (gsi)), region)) + if ((res = gimple_phi_result (gsi_stmt (gsi))) + && is_gimple_reg (res) + && !scev_analyzable_p (res, region)) rewrite_commutative_reductions_out_of_ssa_close_phi (gsi_stmt (gsi), reductions); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d1c8036..a3d5f7e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2010-08-02 Sebastian Pop <sebastian.pop@amd.com> + * gcc.dg/graphite/id-25.c: New. + +2010-08-02 Sebastian Pop <sebastian.pop@amd.com> + * gcc.dg/graphite/run-id-5.c: New. * gcc.dg/graphite/run-id-6.c: New. * gfortran.dg/graphite/id-21.f: New. diff --git a/gcc/testsuite/gcc.dg/graphite/id-25.c b/gcc/testsuite/gcc.dg/graphite/id-25.c new file mode 100644 index 0000000..b719972 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/id-25.c @@ -0,0 +1,34 @@ +typedef struct +{ + int mvd[2][(16/4)][(16/4)][2]; +} Macroblock; +typedef struct +{ + int part_size[8][2]; +} InputParameters; +typedef struct +{ + Macroblock *mb_data; + short****** pred_mv; + short****** all_mv; +} ImageParameters; +extern InputParameters *input; +extern ImageParameters *img; +int writeMotionVector8x8 (void) +{ + int i, j, k, l, m; + int step_h = input->part_size[7][0]; + int step_v = input->part_size[7][1]; + Macroblock* currMB = &img->mb_data[9]; + int refindex = 0; + short****** all_mv = img->all_mv; + short****** pred_mv = img->pred_mv; + + for (k=0; k<2; k++) + { + int curr_mvd = all_mv[2][8][0][8][7][8] - pred_mv[2][7][0][8][7][0]; + for (l=0; l < step_v; l++) + for (m=0; m < step_h; m++) + currMB->mvd[0][8][9][8] = curr_mvd; + } +} |