[X86][Broadwell] Added the instruction scheduling information for the Broadwell CPU.
authorGadi Haber <gadi.haber@intel.com>
Tue, 24 Oct 2017 20:19:47 +0000 (20:19 +0000)
committerGadi Haber <gadi.haber@intel.com>
Tue, 24 Oct 2017 20:19:47 +0000 (20:19 +0000)
commit323f2e17151a6f3105bf1917f2ca42e168b2ff33
treef9f88cb820add121001f35f973fba50dea045da3
parentf8f4620dc6c1e015a0008f348c35b9da633c8f50
[X86][Broadwell] Added the instruction scheduling information for the Broadwell CPU.

Adding the scheduling information for the Browadwell (BDW) CPU target.

This patch adds the instruction scheduling information for the Broadwell (BDW) architecture target by adding the file X86SchedBroadwell.td located under the X86 Target.
We used the scheduling information retrieved from the Broadwell architects in order to create the file.
The scheduling information includes latency, number of micro-Ops and used ports by each BDW instruction.

The patch continues the scheduling replacement and insertion effort started with the SandyBridge (SNB) target in r310792, the Haswell (HSW) target in r311879, the SkylakeClient (SKL) target in rL313613 + rL315978 and the SkylakeServer (SKX) in rL315175.

Performance fluctuations may be expected due to code alignment effects.

Reviewers: zvi, RKSimon, craig.topper
Differential Revision: https://reviews.llvm.org/D39054

Change-Id: If6f799e5ff60e1091c8d43b05ea78c53581bae01
llvm-svn: 316492
22 files changed:
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86SchedBroadwell.td [new file with mode: 0755]
llvm/lib/Target/X86/X86Schedule.td
llvm/test/CodeGen/X86/aes-schedule.ll
llvm/test/CodeGen/X86/avx-schedule.ll
llvm/test/CodeGen/X86/avx2-schedule.ll
llvm/test/CodeGen/X86/bmi-schedule.ll
llvm/test/CodeGen/X86/bmi2-schedule.ll
llvm/test/CodeGen/X86/f16c-schedule.ll
llvm/test/CodeGen/X86/fma-schedule.ll
llvm/test/CodeGen/X86/lea32-schedule.ll
llvm/test/CodeGen/X86/lea64-schedule.ll
llvm/test/CodeGen/X86/lzcnt-schedule.ll
llvm/test/CodeGen/X86/mmx-schedule.ll
llvm/test/CodeGen/X86/movbe-schedule.ll
llvm/test/CodeGen/X86/popcnt-schedule.ll
llvm/test/CodeGen/X86/sse-schedule.ll
llvm/test/CodeGen/X86/sse2-schedule.ll
llvm/test/CodeGen/X86/sse3-schedule.ll
llvm/test/CodeGen/X86/sse41-schedule.ll
llvm/test/CodeGen/X86/sse42-schedule.ll
llvm/test/CodeGen/X86/ssse3-schedule.ll