re PR middle-end/81832 (ICE in expand_LOOP_DIST_ALIAS, at internal-fn.c:2273)
PR tree-optimization/81832 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't copy loop header which has IFN_LOOP_DIST_ALIAS call. gcc/testsuite * gcc.dg/tree-ssa/pr81832.c: New test. From-SVN: r251123
This commit is contained in:
parent
5dd2d9850b
commit
90d43c80aa
@ -1,3 +1,9 @@
|
||||
2017-08-16 Bin Cheng <bin.cheng@arm.com>
|
||||
|
||||
PR tree-optimization/81832
|
||||
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
|
||||
copy loop header which has IFN_LOOP_DIST_ALIAS call.
|
||||
|
||||
2017-08-16 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR middle/81695
|
||||
|
@ -1,3 +1,8 @@
|
||||
2017-08-16 Bin Cheng <bin.cheng@arm.com>
|
||||
|
||||
PR tree-optimization/81832
|
||||
* gcc.dg/tree-ssa/pr81832.c: New test.
|
||||
|
||||
2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
|
||||
|
||||
PR tree-optimization/81835
|
||||
|
22
gcc/testsuite/gcc.dg/tree-ssa/pr81832.c
Normal file
22
gcc/testsuite/gcc.dg/tree-ssa/pr81832.c
Normal file
@ -0,0 +1,22 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O3" } */
|
||||
|
||||
int a, b, *c;
|
||||
void d(void)
|
||||
{
|
||||
int **e;
|
||||
for(;;)
|
||||
for(int f = 1; f <= 6; f++)
|
||||
{
|
||||
b = 0;
|
||||
if(a)
|
||||
g:
|
||||
while(a++);
|
||||
if (**e);
|
||||
else
|
||||
{
|
||||
*c = a;
|
||||
goto g;
|
||||
}
|
||||
}
|
||||
}
|
@ -119,7 +119,10 @@ should_duplicate_loop_header_p (basic_block header, struct loop *loop,
|
||||
continue;
|
||||
|
||||
if (gimple_code (last) == GIMPLE_CALL
|
||||
&& !gimple_inexpensive_call_p (as_a <gcall *> (last)))
|
||||
&& (!gimple_inexpensive_call_p (as_a <gcall *> (last))
|
||||
/* IFN_LOOP_DIST_ALIAS means that inner loop is distributed
|
||||
at current loop's header. Don't copy in this case. */
|
||||
|| gimple_call_internal_p (last, IFN_LOOP_DIST_ALIAS)))
|
||||
{
|
||||
if (dump_file && (dump_flags & TDF_DETAILS))
|
||||
fprintf (dump_file,
|
||||
|
Loading…
Reference in New Issue
Block a user