[PATCH] D66285: [ARM] Correct register for narrowing and widening MVE loads and stores.

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 15 03:15:34 PDT 2019


dmgreen created this revision.
dmgreen added reviewers: t.p.northover, simon_tatham, SjoerdMeijer, samparker, ostannard, efriedma.
Herald added subscribers: hiraditya, kristof.beyls, javed.absar.
Herald added a project: LLVM.

The widening and narrowing MVE instructions like VLDRH.32 are only permitted to use low "thumb1" registers. This means that if they are used for a stack slots, where the register used is only decided during frame setup, we need to be able to correctly pick a thumb1 register over a normal GPR.

This attempts to add the required logic into eliminateFrameIndex and rewriteT2FrameIndex, only picking the FrameReg if it is a valid register for the operands register class, and picking a valid scratch register for the register class.


https://reviews.llvm.org/D66285

Files:
  llvm/lib/Target/ARM/ARMBaseInstrInfo.h
  llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
  llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
  llvm/test/CodeGen/Thumb2/mve-stack.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66285.215361.patch
Type: text/x-patch
Size: 15333 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190815/1044b2d2/attachment-0001.bin>


More information about the llvm-commits mailing list