S/390: Add IBM z13 pipeline description
commit0cb690513493163bf862abedb501e3d76c696109
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Feb 2016 10:27:12 +0000 (19 10:27 +0000)
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Feb 2016 10:27:12 +0000 (19 10:27 +0000)
tree2e4e4460e2ae8872b23a513dcd3e20433c76ac35
parente80be24bb876dbe5695a3c12bbc72ffff88c6031
S/390: Add IBM z13 pipeline description

This patch adds proper support for the -mtune=z13 option by adding a
z13 pipeline description.  As started with zEC12 we mostly make use of
the sched reorder hooks to implement a grouping strategy.  However,
this time we also keep an eye at the instruction mix provided in the
out of order window to allow the hardware to exploit the different
units.

gcc/ChangeLog:

* config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
* config/s390/2964.md: New file.
* config/s390/s390.c (s390_get_sched_attrmask): Use the right set
of insn grouping attributes depending on the CPU level.
(s390_get_unit_mask): New function.
(s390_sched_score): Remove the OOO from the scheduling macros.
Add loop to calculate a score for the instruction mix.
(s390_sched_reorder): Likewise plus improve debug output.
(s390_sched_variable_issue): Rename macros as above.  Calculate
the unit distances after actually scheduling an insn.  Improve
debug output.
(s390_sched_init): Clear last_scheduled_unit_distance array.
* config/s390/s390.md: Include 2964.md.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@233548 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/s390/2827.md
gcc/config/s390/2964.md [new file with mode: 0644]
gcc/config/s390/s390.c
gcc/config/s390/s390.md