s390: Add -munroll-only-small-loops.
authorRobin Dapp <rdapp@linux.ibm.com>
Thu, 3 Mar 2022 14:06:21 +0000 (15:06 +0100)
committerRobin Dapp <rdapp@linux.ibm.com>
Mon, 29 Aug 2022 09:15:09 +0000 (11:15 +0200)
commitaf8955112f4d3294d9cc50a2a125718b202321f0
treeaf1b4ea676c7a53a69e062c57837de56d153c6da
parent9b3cd1755be55fbed5f86fd55bb1a6c3279f1fc4
s390: Add -munroll-only-small-loops.

Inspired by Power we also introduce -munroll-only-small-loops.  This
implies activating -funroll-loops and -munroll-only-small-loops at -O2 and
above.

gcc/ChangeLog:

* common/config/s390/s390-common.cc: Enable -funroll-loops and
-munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
* config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
loops larger than 12 instructions.
(s390_override_options_after_change): Set unroll options.
(s390_option_override_internal): Likewise.
* config/s390/s390.opt: Document munroll-only-small-loops.

gcc/testsuite/ChangeLog:

* gcc.target/s390/vector/vec-copysign.c: Do not unroll.
* gcc.target/s390/zvector/autovec-double-quiet-uneq.c: Dito.
* gcc.target/s390/zvector/autovec-double-signaling-ltgt.c: Dito.
* gcc.target/s390/zvector/autovec-float-quiet-uneq.c: Dito.
* gcc.target/s390/zvector/autovec-float-signaling-ltgt.c: Dito.
gcc/common/config/s390/s390-common.cc
gcc/config/s390/s390.cc
gcc/config/s390/s390.opt
gcc/testsuite/gcc.target/s390/vector/vec-copysign.c
gcc/testsuite/gcc.target/s390/zvector/autovec-double-quiet-uneq.c
gcc/testsuite/gcc.target/s390/zvector/autovec-double-signaling-ltgt.c
gcc/testsuite/gcc.target/s390/zvector/autovec-float-quiet-uneq.c
gcc/testsuite/gcc.target/s390/zvector/autovec-float-signaling-ltgt.c