Commit 6334f3e9 by Vladimir Makarov Committed by Vladimir Makarov

re PR bootstrap/59985 (stage2/3 compare error on lto-streamer-in.o)

2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/59985
	* lra-constraints.c (process_alt_operands): Update reload_sum only
	on the first pass.

2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/59985
	* gcc.target/arm/pr59985.C: New.

From-SVN: r207375
parent eecd8b7c
2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
PR bootstrap/59985
* lra-constraints.c (process_alt_operands): Update reload_sum only
on the first pass.
2014-01-31 Richard Henderson <rth@redhat.com>
PR middle-end/60004
......
......@@ -2178,7 +2178,11 @@ process_alt_operands (int only_alternative)
(operand_reg[nop])]
.last_reload);
if (last_reload > bb_reload_num)
/* The value of reload_sum has sense only if we
process insns in their order. It happens only on
the first constraints sub-pass when we do most of
reload work. */
if (lra_constraint_iter == 1 && last_reload > bb_reload_num)
reload_sum += last_reload - bb_reload_num;
}
/* If this is a constant that is reloaded into the
......
2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
PR bootstrap/59985
* gcc.target/arm/pr59985.C: New.
2014-01-31 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/59410
......
/* { dg-do compile } */
/* { dg-options "-g -fcompare-debug -O2 -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard" } */
extern void *f1 (unsigned long, unsigned long);
extern const struct line_map *f2 (void *, int, unsigned int, const char *, unsigned int);
extern unsigned int f3 (void *, unsigned int);
extern void *v1;
struct B { const char *s; int t; };
struct C { unsigned u; unsigned long long v; void *w; };
unsigned long long f4 (struct C *);
const char *f5 (void *, unsigned int, unsigned int *);
unsigned long long f6 (void *);
static inline unsigned long long
f7 (struct C *x, unsigned y)
{
unsigned long long a, b;
int u = x->u;
a = y == 64 ? -1ULL : (1ULL << y) - 1;
if (u + y > 64)
{
f6 (x->w);
x->u = y;
return b & a;
}
b = x->v;
b >>= u;
x->u = u + y;
return b & a;
}
static const char *
f8 (const char *x)
{
B **a;
unsigned long t = __builtin_strlen (x);
char *b;
struct B *c;
b = (char *) f1 (t + 1, 1);
c = (struct B *) f1 (1, sizeof (struct B));
__builtin_memcpy (b, x, t + 1);
c->t = t;
struct B *d = *a;
return d->s;
}
unsigned int
f9 (struct C *x, void *y)
{
static const char *a;
static int b;
static int c;
bool d, e, f;
unsigned t;
bool prev_file = a != __null;
if (f7 (x, 1))
return ((unsigned int) 0);
d = f7 (x, 1);
e = f7 (x, 1);
f = f7 (x, 1);
a = f8 (f5 (y, f4 (x), &t));
if (e) b = f4 (x);
if (f)
if (d)
if (prev_file)
f2 (v1, 1, false, __null, 0);
return f3 (v1, c);
}
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