[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