[PATCH] D59355: [RISCV] Optimize emission of SELECT sequences

Luís Marques via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 14 04:09:25 PDT 2019


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

This patch optimizes the emission of a sequence of SELECTs with the same 
condition, avoiding the insertion of unnecessary control flow. We have 
identified several use cases where the SELECTs could be interleaved with other 
instructions. Therefore, we extend the sequence to include non-SELECT 
instructions if we are able to detect that the non-SELECT instructions do not 
impact the optimization.


Repository:
  rL LLVM

https://reviews.llvm.org/D59355

Files:
  lib/Target/RISCV/RISCVISelLowering.cpp
  test/CodeGen/RISCV/atomic-rmw.ll
  test/CodeGen/RISCV/select-optimize-multiple.ll
  test/CodeGen/RISCV/select-optimize-multiple.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59355.190589.patch
Type: text/x-patch
Size: 73667 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190314/c8b7cd38/attachment.bin>


More information about the llvm-commits mailing list