Do not use doloop pattern with pragma Unroll
This fixes the following Ada failure on 64-bit PowerPC: -FAIL: gnat.dg/unroll4.adb scan-rtl-dump-times loop2_unroll "optimized: loop unrolled 7 times" 2 The IVOPTS pass detects a doloop pattern and consequently discombobulates the loop sufficiently as to make it hard for the RTL unrolling pass to compute the best number of iterations. gcc/ChangeLog: * tree-ssa-loop-ivopts.c (analyze_and_mark_doloop_use): Bail out if the loop is subject to a pragma Unroll with no specific count.
This commit is contained in:
parent
98161c248c
commit
5f966d6897
|
@ -7947,6 +7947,9 @@ analyze_and_mark_doloop_use (struct ivopts_data *data)
|
|||
if (!flag_branch_on_count_reg)
|
||||
return;
|
||||
|
||||
if (data->current_loop->unroll == USHRT_MAX)
|
||||
return;
|
||||
|
||||
if (!generic_predict_doloop_p (data))
|
||||
return;
|
||||
|
||||
|
|
Loading…
Reference in New Issue