[PATCH] D52886: [X86] Move ReadAfterLd functionality into X86FoldableSchedWrite (PR36957)
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 4 07:07:53 PDT 2018
RKSimon created this revision.
RKSimon added reviewers: andreadb, craig.topper, courbet, gchatelet, lebedev.ri, spatel.
Herald added a subscriber: gbedwell.
Currently we hardcode instructions with ReadAfterLd if the register operands don't need to be available until the folded load has completed. This doesn't take into account the different load latencies of different memory operands (PR36957).
This patch adds a ReadAfterFold def into X86FoldableSchedWrite to replace ReadAfterLd, allowing us to specify the load latency at a scheduler class level.
I've added ReadAfterVec*Ld classes that match the XMM/Scl, XMM and YMM/ZMM WriteVecLoad classes that we currently use.
Repository:
rL LLVM
https://reviews.llvm.org/D52886
Files:
lib/Target/X86/X86Instr3DNow.td
lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrArithmetic.td
lib/Target/X86/X86InstrCMovSetCC.td
lib/Target/X86/X86InstrFMA.td
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86InstrMMX.td
lib/Target/X86/X86InstrSSE.td
lib/Target/X86/X86InstrShiftRotate.td
lib/Target/X86/X86InstrXOP.td
lib/Target/X86/X86SchedBroadwell.td
lib/Target/X86/X86SchedHaswell.td
lib/Target/X86/X86SchedSandyBridge.td
lib/Target/X86/X86SchedSkylakeClient.td
lib/Target/X86/X86SchedSkylakeServer.td
lib/Target/X86/X86Schedule.td
lib/Target/X86/X86ScheduleAtom.td
lib/Target/X86/X86ScheduleBtVer2.td
lib/Target/X86/X86ScheduleSLM.td
lib/Target/X86/X86ScheduleZnver1.td
test/tools/llvm-mca/X86/read-after-ld-1.s
test/tools/llvm-mca/X86/read-after-ld-2.s
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D52886.168283.patch
Type: text/x-patch
Size: 189145 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181004/ebf8187e/attachment-0001.bin>
More information about the llvm-commits
mailing list