aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-manip.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2018-01-11 09:14:33 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2018-01-11 08:14:33 +0000
commit29c02e655dca7391afb7f2cbfab7c7bcb68361ac (patch)
tree850390880e53385f1c5fc8cc4e7abc4204bea7b7 /gcc/tree-ssa-loop-manip.c
parent3211aea29a0576eeb3326879b2f58fc0ed374a40 (diff)
downloadgcc-29c02e655dca7391afb7f2cbfab7c7bcb68361ac.zip
gcc-29c02e655dca7391afb7f2cbfab7c7bcb68361ac.tar.gz
gcc-29c02e655dca7391afb7f2cbfab7c7bcb68361ac.tar.bz2
re PR tree-optimization/83189 (internal compiler error: in probability_in, at profile-count.h:1050)
PR middle-end/83189 * gfortran.fortran-torture/compile/pr83189.f90: New testcase. * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero profile. From-SVN: r256480
Diffstat (limited to 'gcc/tree-ssa-loop-manip.c')
-rw-r--r--gcc/tree-ssa-loop-manip.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
index 80e91d0..bf425af 100644
--- a/gcc/tree-ssa-loop-manip.c
+++ b/gcc/tree-ssa-loop-manip.c
@@ -1378,7 +1378,8 @@ tree_transform_and_unroll_loop (struct loop *loop, unsigned factor,
{
/* Avoid dropping loop body profile counter to 0 because of zero count
in loop's preheader. */
- freq_e = freq_e.force_nonzero ();
+ if (freq_h.nonzero_p () && !(freq_e == profile_count::zero ()))
+ freq_e = freq_e.force_nonzero ();
scale_loop_frequencies (loop, freq_e.probability_in (freq_h));
}