[PATCH] Partially fix PR61529, bound basic block frequency

2014-11-10  Renlin Li <Renlin.Li@arm.com>

  PR middle-end/61529

  gcc/
    * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.

  gcc/testsuite/
    * gcc.dg/pr61529.c: New.

From-SVN: r217303
This commit is contained in:
Renlin Li 2014-11-10 17:53:21 +00:00 committed by Jiong Wang
parent a25efea086
commit 202d59415f
4 changed files with 42 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2014-11-10 Renlin Li <renlin.li@arm.com>
PR middle-end/61529
* tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
2014-11-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
* expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to

View File

@ -1,3 +1,8 @@
2014-11-10 Renlin Li <renlin.li@arm.com>
PR middle-end/61529
* gcc.dg/pr61529.c: New.
2014-11-10 Bernd Schmidt <bernds@codesourcery.com>
* lib/target-supports.exp (check_effective_target_return_address):

View File

@ -0,0 +1,27 @@
/* PR middle-end/61529 */
/* { dg-do compile } */
/* { dg-options "-O3" } */
unsigned int a = 0, b = 0;
unsigned int c;
int
main ()
{
unsigned int d = 0;
int e[5];
for (; b < 1; b++)
d = 0;
for (; d < 1; d++)
a = 0;
for (; a < 1; a++)
;
for (c = 0; c < 5; c++)
e[c] = 1;
if (e[0])
c = 0;
return 0;
}

View File

@ -734,6 +734,11 @@ compute_path_counts (struct redirection_data *rd,
nonpath_count += ein->count;
}
}
/* This is needed due to insane incoming frequencies. */
if (path_in_freq > BB_FREQ_MAX)
path_in_freq = BB_FREQ_MAX;
BITMAP_FREE (in_edge_srcs);
/* Now compute the fraction of the total count coming into the first