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:
parent
a19b143257
commit
7770c9e906
5 changed files with 25 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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.*/
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
11
gcc/testsuite/gcc.c-torture/compile/pr55569.c
Normal file
11
gcc/testsuite/gcc.c-torture/compile/pr55569.c
Normal 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;
|
||||
}
|
Loading…
Add table
Reference in a new issue