[all-commits] [llvm/llvm-project] c6bdd8: [X86] Improve the gather scheduler models for Skyl...

topperc via All-commits all-commits at lists.llvm.org
Wed Feb 5 13:27:04 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c6bdd8e73110e14dc54833137cecef9c07d2dc24
      https://github.com/llvm/llvm-project/commit/c6bdd8e73110e14dc54833137cecef9c07d2dc24
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-02-05 (Wed, 05 Feb 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86SchedSkylakeClient.td
    M llvm/lib/Target/X86/X86SchedSkylakeServer.td
    M llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s
    M llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s
    M llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-avx2.s
    M llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx2.s
    M llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s
    M llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s

  Log Message:
  -----------
  [X86] Improve the gather scheduler models for SkylakeClient and SkylakeServer

The load ports need a cycle for each potentially loaded element just like Haswell and Skylake. Unlike Haswell and Broadwell, the number of uops does not scale with the number of elements. Instead the load uops run for multiple cycles.

I've taken the latency number from the uops.info. The port binding for the non-load uops is taken from the original IACA data I have.

Differential Revision: https://reviews.llvm.org/D74000




More information about the All-commits mailing list