[X86] Copy X86SchedSkylakeServer.td to X86SchedIceLake.td
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 31 Aug 2021 09:49:42 +0000 (10:49 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 31 Aug 2021 10:57:20 +0000 (11:57 +0100)
commit9e2d14c2851269928df28a38c76d4d87536bcd49
tree82a7f389a9ba862764014c029d08ece74528f942
parent76a1a415302d06ceb4a3358493e897e98dd75f77
[X86] Copy X86SchedSkylakeServer.td to X86SchedIceLake.td

Icelake, Rocketlake and Tigerlake targets currently use the SkylakeServer scheduler model, despite being a later microarchitecture, leading to both reported bugs (PR48110) and discrepancies when comparing llvm-mca reports to other profiling tools (OSACA, uops, uica, etc.). And tbh I'm getting sick of llvm-mca getting blamed for what are backend scheduler model issues :-(

This patch doesn't attempt to fix any of these discrepancies - there should be no changes in codegen - its a setup patch that copies the skx model, renames all the resources, adds the additional ports (but doesn't reference them yet) and updates the llvm-exegesis pfm counter mappings (based off https://sourceforge.net/p/perfmon2/libpfm4/ci/master/tree/lib/events/intel_icl_events.h).

This should make it trivial for anyone with hardware access to use llvm-exegesis reports to iteratively improve the model (my attempts to get hold of a cheap tiger lake box haven't been fruitful yet....).

I will copy the SkylakeServer llvm-mca resource tests as follow up commits - the diff should entirely be the resource renames.

Differential Revision: https://reviews.llvm.org/D108914
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86PfmCounters.td
llvm/lib/Target/X86/X86SchedIceLake.td [new file with mode: 0644]