Message ID | 545BB5B5.90008@arm.com |
---|---|
State | New |
Headers | show |
Thanks for fixing the test case. Can you also add the comment I suggested to the source change? > Please add a comment that this is needed due to insane incoming frequencies. Thanks, Teresa On Thu, Nov 6, 2014 at 9:53 AM, Renlin Li <renlin.li@arm.com> wrote: > Hi Teresa, > > Thank you for the suggestion, updated! > >> Please add a comment that this is needed due to insane incoming >> frequencies. >> >> The 'b' variable is uninitialized. Also, 'd' and 'a' may end up >> uninitialized depending on the initial value of 'b'. Please initialize >> these. >> > > Test case has been added. With the patch, both x86_64-unknown-linux-gnu and > aarch64-none-elf compile the test case successfully. > > x86_64-unknown-linux-gnu bootstrap and regression test have been done, no > new issue. > aarch64-none-elf toolchain has been test on the model. No new regression. > > gcc/ChangeLog: > > 2014-11-06 Renlin Li <Renlin.Li@arm.com> > PR middle-end/61529 > * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq. > This is needed due to insane incoming frequencies. > > gcc/testsuite/ChangeLog: > > 2014-11-06 Renlin Li <Renlin.Li@arm.com> > PR middle-end/61529 > * gcc.dg/pr61529.c: New.
commit b38cf02619f03be9d200849734f4454502d1e5ac Author: Renlin Li <renlin.li@arm.com> Date: Tue Oct 28 16:30:42 2014 +0000 fix pr61529 diff --git a/gcc/testsuite/gcc.dg/pr61529.c b/gcc/testsuite/gcc.dg/pr61529.c new file mode 100644 index 0000000..392239e --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr61529.c @@ -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; +} diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c index d2cf4de..e3077a1 100644 --- a/gcc/tree-ssa-threadupdate.c +++ b/gcc/tree-ssa-threadupdate.c @@ -730,6 +730,10 @@ compute_path_counts (struct redirection_data *rd, nonpath_count += ein->count; } } + + 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