[PATCH] D150648: [KnownBits] Return zero instead of unknown for always poison shifts

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 16 01:48:59 PDT 2023


nikic created this revision.
nikic added reviewers: foad, RKSimon, goldstein.w.n.
Herald added subscribers: luke, StephenFan, frasercrmck, luismarques, apazos, sameer.abuasal, s.egerton, Jim, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya.
Herald added a project: All.
nikic requested review of this revision.
Herald added subscribers: llvm-commits, pcwang-thead, MaskRay.
Herald added a project: LLVM.

For always poison shifts, any KnownBits return value is valid. Currently we return unknown, but returning zero is generally more profitable. We had some code in ValueTracking that tried to do this, but was actually dead code.


https://reviews.llvm.org/D150648

Files:
  llvm/lib/Analysis/ValueTracking.cpp
  llvm/lib/Support/KnownBits.cpp
  llvm/test/Analysis/ScalarEvolution/ashr.ll
  llvm/test/CodeGen/AArch64/GlobalISel/form-bitfield-extract-from-sextinreg.mir
  llvm/test/CodeGen/LoongArch/rotl-rotr.ll
  llvm/test/CodeGen/RISCV/rotl-rotr.ll
  llvm/test/Transforms/InstCombine/not-add.ll
  llvm/test/Transforms/InstCombine/shift.ll
  llvm/unittests/Analysis/ValueTrackingTest.cpp
  llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
  llvm/unittests/CodeGen/GlobalISel/KnownBitsVectorTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D150648.522495.patch
Type: text/x-patch
Size: 12938 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230516/c5fed277/attachment.bin>


More information about the llvm-commits mailing list