Do not use doloop pattern with pragma Unroll
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 23 Oct 2020 07:51:46 +0000 (09:51 +0200)
committerEric Botcazou <ebotcazou@adacore.com>
Fri, 23 Oct 2020 07:58:33 +0000 (09:58 +0200)
commit5f966d689710cbb03a0592504102119ab99978d4
treef796ec4c2480a6456aaeee7fc8ca08a3db785f5b
parent98161c248c88f873bbffba23664c540f551d89d5
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.
gcc/tree-ssa-loop-ivopts.c