[PATCH] D62857: [RISCV] Prevent hoisting some adds after shifts

Sam Elliott via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 4 07:07:03 PDT 2019


lenary created this revision.
lenary added reviewers: asb, luismarques, efriedma.
Herald added subscribers: llvm-commits, benna, psnobl, jocewei, PkmX, rkruppe, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, kito-cheng, niosHD, sabuasal, apazos, simoncook, johnrusso, rbar, hiraditya.
Herald added a project: LLVM.

On RISC-V, materialising the large (shifted) constant produced for the
new add uses an extra register, and takes several instructions. It is
more efficient to perform the add before the shift if the constant to be
added fits into an immediate.

This is potentially useful to other targets, and might in future be done
within the target-independent part of DAGCombine.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D62857

Files:
  llvm/lib/Target/RISCV/RISCVISelLowering.cpp
  llvm/lib/Target/RISCV/RISCVISelLowering.h
  llvm/test/CodeGen/RISCV/add-before-shl.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62857.202931.patch
Type: text/x-patch
Size: 4175 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190604/f444b65a/attachment.bin>


More information about the llvm-commits mailing list