Fix ICE in loop splitting with -fno-guess-branch-probability
PR tree-optimization/111054 gcc/ChangeLog: * tree-ssa-loop-split.cc (split_loop): Check for profile being present. gcc/testsuite/ChangeLog: * gcc.c-torture/compile/pr111054.c: New test.
This commit is contained in:
parent
16ae5efedd
commit
8d51bfe0f9
2 changed files with 13 additions and 1 deletions
11
gcc/testsuite/gcc.c-torture/compile/pr111054.c
Normal file
11
gcc/testsuite/gcc.c-torture/compile/pr111054.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
/* { dg-additional-options "-fno-guess-branch-probability" } */
|
||||
void *p, *q;
|
||||
int i, j;
|
||||
|
||||
void
|
||||
foo (void)
|
||||
{
|
||||
for (i = 0; i < 20; i++)
|
||||
if (i < j)
|
||||
p = q;
|
||||
}
|
|
@ -712,7 +712,8 @@ split_loop (class loop *loop1)
|
|||
? true_edge->probability.to_sreal () : (sreal)1;
|
||||
sreal scale2 = false_edge->probability.reliable_p ()
|
||||
? false_edge->probability.to_sreal () : (sreal)1;
|
||||
sreal div1 = loop1_prob.to_sreal ();
|
||||
sreal div1 = loop1_prob.initialized_p ()
|
||||
? loop1_prob.to_sreal () : (sreal)1/(sreal)2;
|
||||
/* +1 to get header interations rather than latch iterations and then
|
||||
-1 to convert back. */
|
||||
if (div1 != 0)
|
||||
|
|
Loading…
Add table
Reference in a new issue