With this patch we avoid instantiating ADDR_EXPR: it makes no sense
to translate &b[i] into &b[{0, +, 1}_1].
Bootstrapped and tested on amd64-linux.
2011-07-26 Sebastian Pop <sebastian.pop@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.
From-SVN: r176801
+2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/48805
+ * tree-scalar-evolution.c (instantiate_scev_r): Return
+ chrec_dont_know for ADDR_EXPR.
+
2011-07-26 Uros Bizjak <ubizjak@gmail.com>
H.J. Lu <hongjiu.lu@intel.com>
+2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/48805
+ * gcc.dg/graphite/id-pr48805.c: New.
+
2011-07-26 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coarray_lib_token_2.f90: New.
PR tree-opt/49671
* gcc.dg/tree-ssa/pr49671-1.c: New testcase.
* gcc.dg/tree-ssa/pr49671-2.c: New testcase.
-
+
2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* lib/target-supports.exp (check_effective_target_mmap): New proc.
--- /dev/null
+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);
+}
TREE_OPERAND (chrec, 0),
fold_conversions, cache, size_expr);
+ case ADDR_EXPR:
case SCEV_NOT_KNOWN:
return chrec_dont_know;