[PATCH] D48128: [ARM] Parallel DSP IR Pass

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 21 07:22:37 PDT 2018


SjoerdMeijer updated this revision to Diff 152292.
SjoerdMeijer added a comment.

Yes, oops, fixed the alignment, and addressed the nits as well.

About:

> Could you please add an llc test to ensure that any unsafe ldrds don't get generated?

I was struggling creating a test case. The load/store optimiser runs after regalloc, and for it to trigger consecutive registers need to be loaded, which wasn't happening in my case. But I think this would be a fragile and indirect test. And perhaps more importantly, the alignment is now correctly set, to 2 in this case, and  I think we can rely on the load/store optimiser to respect this and do the right thing. That is, I see in the load/store optimiser pass that it is not capable operating on memory operations with getAlignment() < 4.


https://reviews.llvm.org/D48128

Files:
  lib/Target/ARM/ARM.h
  lib/Target/ARM/ARMParallelDSP.cpp
  lib/Target/ARM/ARMTargetMachine.cpp
  lib/Target/ARM/CMakeLists.txt
  lib/Target/ARM/LLVMBuild.txt
  test/CodeGen/ARM/smlad0.ll
  test/CodeGen/ARM/smlad1.ll
  test/CodeGen/ARM/smlad10.ll
  test/CodeGen/ARM/smlad2.ll
  test/CodeGen/ARM/smlad3.ll
  test/CodeGen/ARM/smlad4.ll
  test/CodeGen/ARM/smlad5.ll
  test/CodeGen/ARM/smlad6.ll
  test/CodeGen/ARM/smlad7.ll
  test/CodeGen/ARM/smlad8.ll
  test/CodeGen/ARM/smlad9.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48128.152292.patch
Type: text/x-patch
Size: 45804 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180621/9d61403c/attachment-0001.bin>


More information about the llvm-commits mailing list