[all-commits] [llvm/llvm-project] 4e56aa: [X86] Schedule scalar movsx/movzx load+extend ops ...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Sun Nov 6 06:32:25 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4e56aa252fc983574e32a0cb8b73333831f66700
https://github.com/llvm/llvm-project/commit/4e56aa252fc983574e32a0cb8b73333831f66700
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2022-11-06 (Sun, 06 Nov 2022)
Changed paths:
M llvm/lib/Target/X86/X86InstrExtension.td
M llvm/lib/Target/X86/X86SchedBroadwell.td
M llvm/lib/Target/X86/X86SchedHaswell.td
M llvm/lib/Target/X86/X86SchedIceLake.td
M llvm/lib/Target/X86/X86SchedSandyBridge.td
M llvm/lib/Target/X86/X86SchedSkylakeClient.td
M llvm/lib/Target/X86/X86SchedSkylakeServer.td
M llvm/lib/Target/X86/X86ScheduleZnver1.td
M llvm/lib/Target/X86/X86ScheduleZnver2.td
M llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s
M llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s
M llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s
M llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s
M llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s
M llvm/test/tools/llvm-mca/X86/Znver3/resources-x86_64.s
Log Message:
-----------
[X86] Schedule scalar movsx/movzx load+extend ops as WriteLoad instead of WriteALULd
Although some very old x86 hardware would perform the extension as a later stage, every target we have a scheduler for always performs this as part of the load-op (avoid ALU pipes etc.). If anyone wants to model very old hardware they can always override this.
This patch just tags these as WriteLoad directly and removes unnecessary overrides - this cleans up some latency/throughput tests as they aren't being badly modelled as folded ALU ops
More information about the All-commits
mailing list