On Sat, Jul 23, 2011 at 4:38 PM, Sebastian Pop <seb...@gmail.com> wrote: > On Sat, Jul 23, 2011 at 09:35, Sebastian Pop <seb...@gmail.com> wrote: >> With this patch we avoid instantiating ADDR_EXPR: it makes no sense >> to translate b[i] into b[{0, +, 1}_1]. >> > > This should have been &b[i] and &b[{0, +, 1}_1]. > > Ok for trunk?
Ok. Thanks, Richard. > Thanks, > Sebastian > >> Bootstrapped and tested on amd64-linux. >> >> 2011-07-22 Sebastian Pop <sebastian....@amd.com> >> >> PR middle-end/48805 >> * tree-scalar-evolution.c (instantiate_scev_r): Return >> chrec_dont_know for ADDR_EXPR. >> >> * gcc.dg/graphite/id-pr48805.c: New. >> --- >> gcc/ChangeLog | 6 ++++++ >> gcc/testsuite/ChangeLog | 5 +++++ >> gcc/testsuite/gcc.dg/graphite/id-pr48805.c | 20 ++++++++++++++++++++ >> gcc/tree-scalar-evolution.c | 1 + >> 4 files changed, 32 insertions(+), 0 deletions(-) >> create mode 100644 gcc/testsuite/gcc.dg/graphite/id-pr48805.c >> >> diff --git a/gcc/ChangeLog b/gcc/ChangeLog >> index 303c9c9..6a343b9 100644 >> --- a/gcc/ChangeLog >> +++ b/gcc/ChangeLog >> @@ -1,5 +1,11 @@ >> 2011-07-22 Sebastian Pop <sebastian....@amd.com> >> >> + PR middle-end/48805 >> + * tree-scalar-evolution.c (instantiate_scev_r): Return >> + chrec_dont_know for ADDR_EXPR. >> + >> +2011-07-22 Sebastian Pop <sebastian....@amd.com> >> + >> PR middle-end/48648 >> * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle >> CLAST assignments. >> diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog >> index bfdbcfb..9c59a43 100644 >> --- a/gcc/testsuite/ChangeLog >> +++ b/gcc/testsuite/ChangeLog >> @@ -1,5 +1,10 @@ >> 2011-07-22 Sebastian Pop <sebastian....@amd.com> >> >> + PR middle-end/48805 >> + * gcc.dg/graphite/id-pr48805.c: New. >> + >> +2011-07-22 Sebastian Pop <sebastian....@amd.com> >> + >> PR middle-end/48648 >> * gcc.dg/graphite/id-pr48648.c: New. >> >> diff --git a/gcc/testsuite/gcc.dg/graphite/id-pr48805.c >> b/gcc/testsuite/gcc.dg/graphite/id-pr48805.c >> new file mode 100644 >> index 0000000..f13a828 >> --- /dev/null >> +++ b/gcc/testsuite/gcc.dg/graphite/id-pr48805.c >> @@ -0,0 +1,20 @@ >> +void *A(const void *a); >> +void C(void); >> + >> +static void B(unsigned short a[]) >> +{ >> + long i, j, tmp; >> + >> + for(i = 0; i < 3; i++) { >> + for(j = 1; j <= 3; j++) >> + tmp -= a[i - j]; >> + >> + a[i] = (unsigned short)(tmp >> 1); >> + } >> +} >> +void C(void) >> +{ >> + unsigned short a[3], b[3]; >> + B(b + 1); >> + A(a); >> +} >> diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c >> index bfa8c93..00fcd3f 100644 >> --- a/gcc/tree-scalar-evolution.c >> +++ b/gcc/tree-scalar-evolution.c >> @@ -2645,6 +2645,7 @@ instantiate_scev_r (basic_block instantiate_below, >> TREE_OPERAND (chrec, 0), >> fold_conversions, cache, size_expr); >> >> + case ADDR_EXPR: >> case SCEV_NOT_KNOWN: >> return chrec_dont_know; >> >> -- >> 1.7.4.1 >> >> >