[PATCH] D79492: [RISCV] Improve constant materialization

Luís Marques via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 6 08:03:03 PDT 2020


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

This patch adds several tatics for `RISCVMatInt::generateInstSeq` to try decompose the constant/immediate to materialize, which can find less costly materialization alternatives for RV64 than what we emit with the generic approach. Some of those tactics depend on each other to be effective. This addresses many of the less-than-optimal materializations in the `imm.ll` test.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D79492

Files:
  llvm/lib/Target/RISCV/Utils/RISCVMatInt.cpp
  llvm/test/CodeGen/RISCV/add-before-shl.ll
  llvm/test/CodeGen/RISCV/copysign-casts.ll
  llvm/test/CodeGen/RISCV/double-bitmanip-dagcombines.ll
  llvm/test/CodeGen/RISCV/double-intrinsics.ll
  llvm/test/CodeGen/RISCV/double-mem.ll
  llvm/test/CodeGen/RISCV/float-bit-preserving-dagcombines.ll
  llvm/test/CodeGen/RISCV/float-mem.ll
  llvm/test/CodeGen/RISCV/imm.ll
  llvm/test/CodeGen/RISCV/rv64-large-stack.ll
  llvm/test/CodeGen/RISCV/srem-vector-lkk.ll
  llvm/test/CodeGen/RISCV/vararg.ll
  llvm/test/MC/RISCV/rv64c-aliases-valid.s
  llvm/test/MC/RISCV/rv64i-aliases-valid.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79492.262380.patch
Type: text/x-patch
Size: 15556 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200506/ac3d9a62/attachment.bin>


More information about the llvm-commits mailing list