[PATCH] D46477: [AARCH64] Change max stores for memcpy/memmov/memset and gang up loads and stores (for memcpy) for pairing.

Sirish Pande via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 4 14:20:36 PDT 2018


SirishP created this revision.
SirishP added reviewers: eli.friedman, davide, evandro, sebpop, javed.absar.
Herald added subscribers: hiraditya, kristof.beyls, eraman, rengolin.

This is continuation of https://reviews.llvm.org/D45098. Besides changing max stores for memcpy/memmove and memset, this patch also gangs up loads and stores for pairing (in case of memcpy). We address only memcpy and not other memory operations, because in mempy source and destination addresses are disjoint and hence no alias analysis is required to disambiguate loads and stores.

Each target defines numbers of loads and stores to be ganged up. For Aarch64, it is set at 4. Other targets have defaulted to 0, and hence no effect.


Repository:
  rL LLVM

https://reviews.llvm.org/D46477

Files:
  llvm/include/llvm/CodeGen/TargetLowering.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  llvm/lib/CodeGen/TargetLoweringBase.cpp
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/test/CodeGen/AArch64/arm64-2012-05-07-MemcpyAlignBug.ll
  llvm/test/CodeGen/AArch64/arm64-memcpy-inline.ll
  llvm/test/CodeGen/AArch64/arm64-memset-to-bzero.ll
  llvm/test/CodeGen/AArch64/arm64-misaligned-memcpy-inline.ll
  llvm/test/CodeGen/AArch64/arm64-variadic-aapcs.ll
  llvm/test/CodeGen/AArch64/arm64-virtual_base.ll
  llvm/test/CodeGen/AArch64/mergestores_noimplicitfloat.ll
  llvm/test/CodeGen/ARM/memcpy-inline.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46477.145259.patch
Type: text/x-patch
Size: 16217 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180504/89db0920/attachment.bin>


More information about the llvm-commits mailing list