[PATCH] D158913: [RISCV] Add a cross basic block VXRM write insertion pass.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 25 16:40:55 PDT 2023


craig.topper created this revision.
craig.topper added reviewers: eopXD, arcbbb, reames, kito-cheng, frasercrmck.
Herald added subscribers: jobnoorman, luke, sunshaoce, VincentWu, vkmr, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya, arichardson.
Herald added a project: All.
craig.topper requested review of this revision.
Herald added subscribers: wangpc, MaskRay.
Herald added a project: LLVM.

This is based on D122709 <https://reviews.llvm.org/D122709> without the loop hoisting support. It has
been updated to be more consistent with the dataflow in handling in
the current vsetvli insertion pass.

I've separated VXRM handling from FRM handling since FRM requires
restoring and VXRM doesn't. We may even consider moving VXRM insertion
after register allocation to give more scheduler freedom.

A future patch will support hoisting out of loops.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D158913

Files:
  llvm/lib/Target/RISCV/CMakeLists.txt
  llvm/lib/Target/RISCV/RISCV.h
  llvm/lib/Target/RISCV/RISCVInsertReadWriteCSR.cpp
  llvm/lib/Target/RISCV/RISCVInsertWriteVXRM.cpp
  llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
  llvm/test/CodeGen/RISCV/O0-pipeline.ll
  llvm/test/CodeGen/RISCV/O3-pipeline.ll
  llvm/test/CodeGen/RISCV/rvv/vxrm-insert.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158913.553668.patch
Type: text/x-patch
Size: 33084 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230825/ee823699/attachment-0001.bin>


More information about the llvm-commits mailing list