r244097 - in /trunk/gcc: ChangeLog config/s390/...

krebbel@gcc.gnu.org krebbel@gcc.gnu.org
Thu Jan 5 10:00:00 GMT 2017


Author: krebbel
Date: Thu Jan  5 10:00:34 2017
New Revision: 244097

URL: https://gcc.gnu.org/viewcvs?rev=244097&root=gcc&view=rev
Log:
S/390: Unroll mvc/xc loop for memset with small constant
 lengths.

When expanding a memset we emit a loop of MVCs/XCs instructions dealing
with 256 byte blocks.  This loop used to get unrolled with older GCCs
when using constant length operands.  GCC lost this ability probably
when more of the loop unrolling stuff has been moved to tree level.

With this patch the unrolling is done manually when emitting the RTL
insns.

2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/memset-1.c: New test.

gcc/ChangeLog:

2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_expand_setmem): Unroll the loop for
	small constant length operands.


Added:
    trunk/gcc/testsuite/gcc.target/s390/memset-1.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/s390/s390.c



More information about the Gcc-cvs mailing list