diff options
author | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2016-10-28 12:31:37 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2016-10-28 12:31:37 +0000 |
commit | 539405d5541e31914995e5efbd4660ddf382f834 (patch) | |
tree | 2c194d85a345839f86cb019c38ef6b0c569752ce /gcc/fold-const.c | |
parent | 0dbb19f0f1542f9e61e599cbd25111f5de811929 (diff) | |
download | gcc-539405d5541e31914995e5efbd4660ddf382f834.zip gcc-539405d5541e31914995e5efbd4660ddf382f834.tar.gz gcc-539405d5541e31914995e5efbd4660ddf382f834.tar.bz2 |
S/390: Add static OSC breaker if necessary.
This patch adds a magic OSC (operand store compare) break instruction
which is necessary if a store is followed closely by a load with same
base+indx+displ while either base or index get modified in between.
The patch improves several SpecCPU testcases running on IBM z13.
gcc/testsuite/ChangeLog:
2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/oscbreak-1.c: New test.
gcc/ChangeLog:
2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_adjust_loop_scan_osc): New function.
(s390_adjust_loops): New function.
(s390_reorg): Invoke s390_adjust_loops.
* config/s390/s390.md: (UNSPEC_OSC_BREAK): New constant.
("osc_break"): New insn definition.
From-SVN: r241644
Diffstat (limited to 'gcc/fold-const.c')
0 files changed, 0 insertions, 0 deletions