[PATCH] D18048: [AArch64] Enable more load clustering in the MI Scheduler.

Chad Rosier via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 17 13:17:18 PDT 2016


mcrosier updated this revision to Diff 50970.
mcrosier added a comment.

Use the isCandidateToMergeOrPair() directly in shouldClusterLoads.  This prevents us from clustering loads that can't possibly be paired.

Interestingly, this fix didn't change code generation for SPEC200X.  My assumption is the scheduler doesn't really touch volatiles or MI's without MMOs and the load/store suppression only applies to stores (which we don't currently cluster).  The remaining check is to make sure the load/store doesn't modify the base register and I'm guessing that rarely/never happens.  Regardless, I agree this is the correct thing to do.


http://reviews.llvm.org/D18048

Files:
  lib/Target/AArch64/AArch64InstrInfo.cpp
  lib/Target/AArch64/AArch64InstrInfo.h
  lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
  test/CodeGen/AArch64/arm64-ldp-cluster.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18048.50970.patch
Type: text/x-patch
Size: 11824 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160317/b560a4d9/attachment.bin>


More information about the llvm-commits mailing list