Hi,
the following patch set fixes PR47654:

  Correct typo.
  Correct computation of max.
  Fix PR47654: Loop blocking should strip-mine at least two loops.
  Fix computation of precision.
  Compute the type of the IV based only on the CLAST bounds.
  Fix PR47654: Compute LB and UB of a CLAST expression.

First, "Loop blocking should strip-mine at least two loops" disables
loop blocking when the strip mine is not applied to at least two
loops.  In the testcase of this PR we have the first loop that does
not contain enough iterations to be strip mined:

  for (i = 0; i < 40; i++)
    for (j = 0; j < 128; j++)
      a[j][i] = 4;

The second interesting patch "Fix computation of precision" uses the
mpz_sizeinbase function instead of computing the log of the gmp value.

"Compute the type of the IV based only on the CLAST bounds" removes
the computation of the type of the induction variable based on the
polyhedral representation: this is a redundant information at the code
generation level, as cloog has already integrated this info in the
CLAST.

Finally, "Compute LB and UB of a CLAST expression" fixes the root
cause of PR47654: it reimplements the type computation based on the
low and up bounds of CLAST expressions.

This patch set passed bootstrap and test c,c++,fortran on amd64-linux.
Full bootstrap and test in progress on amd64-linux.  Ok for trunk?

Thanks,
Sebastian

 gcc/ChangeLog                                  |   53 +++
 gcc/graphite-blocking.c                        |   59 ++--
 gcc/graphite-clast-to-gimple.c                 |  417 ++++++++++--------------
 gcc/graphite-interchange.c                     |   21 +-
 gcc/graphite-poly.h                            |    4 +-
 gcc/graphite-ppl.h                             |   14 +-
 gcc/testsuite/ChangeLog                        |   10 +
 gcc/testsuite/gcc.dg/graphite/block-pr47654.c  |   25 ++
 gcc/testsuite/gcc.dg/graphite/run-id-pr47654.c |   24 ++
 9 files changed, 343 insertions(+), 284 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/graphite/block-pr47654.c
 create mode 100644 gcc/testsuite/gcc.dg/graphite/run-id-pr47654.c

-- 
1.7.4.1

Reply via email to