[AARCH64] Add scheduler for ThunderX
authorAndrew Pinski <apinski@cavium.com>
Fri, 14 Nov 2014 21:21:25 +0000 (21:21 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Fri, 14 Nov 2014 21:21:25 +0000 (13:21 -0800)
commit2d41ed582029561858ae03b01234cc05e1730107
treeddfaaa1597dfadd800e1c108e4f32ad83cc38cc8
parent0c307d8f7eca608544d183c8c3d068a40571676c
[AARCH64] Add scheduler for ThunderX

This adds the schedule model for ThunderX. There are a few TODOs in that
not all of the SIMD is model currently.  Also the idea of a simple
shift/extend is not modeled and all cases where there is a shift/extend
is considered as non simple and take up two cycles rather than correct
value of one cycle.  Also the 32bit divide and the 64bit divide
have different cycle counts but there is no way to model that currently.
Also multiply high takes one cycle more than the normal multiply but
there is no way to model that currently either.

Build and tested for aarch64-elf with no regressions.

ChangeLog:
* config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
over to thunderx.
* config/aarch64/aarch64.md: Include thunderx.md.
(generic_sched): Set to no for thunderx.
* config/aarch64/thunderx.md: New file.

From-SVN: r217593
gcc/ChangeLog
gcc/config/aarch64/aarch64-cores.def
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/thunderx.md [new file with mode: 0644]