re PR tree-optimization/55569 (ICE: in check_probability, at basic-block.h:944 with -ftree-vectorize)

PR tree-optimization/55569
	* cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
	* cfgloop.h (scale_loop_profile): Likewise.

From-SVN: r195067
This commit is contained in:
Jan Hubicka 2013-01-09 22:29:07 +01:00 committed by Jan Hubicka
parent a19b143257
commit 7770c9e906
5 changed files with 25 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2013-01-09 Jan Hubicka <jh@suse.cz>
PR tree-optimization/55569
* cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
* cfgloop.h (scale_loop_profile): Likewise.
2013-01-09 Jan Hubicka <jh@suse.cz>
PR lto/45375

View File

@ -711,7 +711,7 @@ extern void unroll_and_peel_loops (int);
extern void doloop_optimize_loops (void);
extern void move_loop_invariants (void);
extern bool finite_loop_p (struct loop *);
extern void scale_loop_profile (struct loop *loop, int scale, int iteration_bound);
extern void scale_loop_profile (struct loop *loop, int scale, gcov_type iteration_bound);
extern vec<basic_block> get_loop_hot_path (const struct loop *loop);
/* Returns the outermost loop of the loop nest that contains LOOP.*/

View File

@ -481,7 +481,7 @@ scale_loop_frequencies (struct loop *loop, int num, int den)
to iterate too many times. */
void
scale_loop_profile (struct loop *loop, int scale, int iteration_bound)
scale_loop_profile (struct loop *loop, int scale, gcov_type iteration_bound)
{
gcov_type iterations = expected_loop_iterations_unbounded (loop);
edge e;
@ -491,7 +491,7 @@ scale_loop_profile (struct loop *loop, int scale, int iteration_bound)
fprintf (dump_file, ";; Scaling loop %i with scale %f, "
"bounding iterations to %i from guessed %i\n",
loop->num, (double)scale / REG_BR_PROB_BASE,
iteration_bound, (int)iterations);
(int)iteration_bound, (int)iterations);
/* See if loop is predicted to iterate too many times. */
if (iteration_bound && iterations > 0

View File

@ -1,3 +1,8 @@
2013-01-09 Jan Hubicka <jh@suse.cz>
PR tree-optimization/55569
* gcc.c-torture/compile/pr55569.c: New testcase.
2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/47203

View File

@ -0,0 +1,11 @@
/* { dg-options "-O1 -ftree-vectorize" } */
int *bar (void);
void
foo (void)
{
long x;
int *y = bar ();
for (x = -1 / sizeof (int); x; --x, ++y)
*y = 0;
}