[PATCH] D37698: Add target callback areMemOpsHaveSameBasePtr

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 11 10:30:49 PDT 2017


rampitec created this revision.
Herald added subscribers: javed.absar, nhaehnle, arsenm.

MachineScheduler when clustering loads or stores checks if base
pointers point to the same memory. This check is done through
comparison of base registers of two memory instructions. This
works fine when instructions have separate offset operand. If
they require a full calculated pointer such instructions can
never be clustered according to such logic.

Implemented the new target callback providing an opportunity to
perform necessary more complicated checks in such case.


https://reviews.llvm.org/D37698

Files:
  include/llvm/Target/TargetInstrInfo.h
  lib/CodeGen/MachineScheduler.cpp
  lib/Target/AMDGPU/SIInstrInfo.cpp
  lib/Target/AMDGPU/SIInstrInfo.h
  test/CodeGen/AMDGPU/add.i16.ll
  test/CodeGen/AMDGPU/ctpop.ll
  test/CodeGen/AMDGPU/fadd.f16.ll
  test/CodeGen/AMDGPU/flat-load-clustering.mir
  test/CodeGen/AMDGPU/si-triv-disjoint-mem-access.ll
  test/CodeGen/AMDGPU/sub.i16.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37698.114629.patch
Type: text/x-patch
Size: 16027 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170911/257f3220/attachment-0001.bin>


More information about the llvm-commits mailing list