revert: tree-ssa-loop-ch.c (copy_loop_headers): Decrement nb_iterations_upper_bound by one.

2013-11-22  Richard Biener  <rguenther@suse.de>

	Revert
	2013-11-21  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-ch.c (copy_loop_headers): Decrement
	nb_iterations_upper_bound by one.

        * gcc.dg/torture/20131122-0.c: New testcase.

From-SVN: r205256
This commit is contained in:
Richard Biener 2013-11-22 13:17:41 +00:00 committed by Richard Biener
parent 7dced2146b
commit 1e37d699ca
4 changed files with 46 additions and 10 deletions

View File

@ -1,3 +1,11 @@
2013-11-22 Richard Biener <rguenther@suse.de>
Revert
2013-11-21 Richard Biener <rguenther@suse.de>
* tree-ssa-loop-ch.c (copy_loop_headers): Decrement
nb_iterations_upper_bound by one.
2013-11-22 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (processor_alias_table): Enable PTA_POPCNT

View File

@ -1,3 +1,7 @@
2013-11-22 Richard Biener <rguenther@suse.de>
* gcc.dg/torture/20131122-0.c: New testcase.
2013-11-22 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/vect/vect-124.c: New test.

View File

@ -0,0 +1,34 @@
/* { dg-do run } */
extern int memcmp (const void *, const void *, __SIZE_TYPE__);
extern void abort (void);
void __attribute__ ((noinline))
f (long *s, long *t, int len1, int len2)
{
int i, j;
j = 2;
for (i = len1 - 1; i >= 0; i--)
{
s[j--] = (i < len2 ? t[i] : t[len2 - 1] < 0 ? -1 : 0);
if (j < 0)
break;
}
}
long s[3];
long t[3];
int
main (void)
{
t[0] = 1;
t[1] = 2;
t[2] = 3;
f (s, t, 3, 3);
if (memcmp (s, t, sizeof (s)) != 0)
abort ();
return 0;
}

View File

@ -243,16 +243,6 @@ copy_loop_headers (void)
are not now, since there was the loop exit condition. */
split_edge (loop_preheader_edge (loop));
split_edge (loop_latch_edge (loop));
/* We peeled off one iteration of the loop thus we can lower
the maximum number of iterations if we have a previously
recorded value for that. */
double_int max;
if (get_max_loop_iterations (loop, &max))
{
max -= double_int_one;
loop->nb_iterations_upper_bound = max;
}
}
update_ssa (TODO_update_ssa);