[PATCH] D54847: [MachineScheduler] Add support for clustering mem ops with FI base operands

Francis Visoiu Mistrih via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 23 02:41:51 PST 2018


thegameg created this revision.
thegameg added reviewers: qcolombet, niravd, MatzeB, efriedma.
Herald added subscribers: arphaman, javed.absar, eraman.

Before this patch, the following stores in `merge_fail` would fail to be merged, while they would get merged in `merge_ok`:

  void use(unsigned long long *);
  void merge_fail(unsigned key, unsigned index)
  {
    unsigned long long args[8];
    args[0] = key;
    args[1] = index;
    use(args);
  }
  void merge_ok(unsigned long long *dst, unsigned a, unsigned b)
  {
    dst[0] = a;
    dst[1] = b;
  }

The reason is that `getMemOpBaseImmOfs` would return false for FI base operands.

This adds support for this.


https://reviews.llvm.org/D54847

Files:
  lib/CodeGen/MachineScheduler.cpp
  lib/Target/AArch64/AArch64InstrInfo.cpp
  test/CodeGen/AArch64/arm64-memset-inline.ll
  test/CodeGen/AArch64/cluster-frame-index.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54847.175096.patch
Type: text/x-patch
Size: 5798 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181123/256fa5b5/attachment.bin>


More information about the llvm-commits mailing list