Commit 4c7d6755 by Sebastian Pop Committed by Sebastian Pop

Fix PR48805: Do not instantiate ADDR_EXPRs

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
parent bf03b9ff
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.
......@@ -12,7 +17,7 @@
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.
......
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);
}
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment