[PATCH] D116747: [SCEVExpand] Only create required predicate checks.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 6 07:47:55 PST 2022


fhahn created this revision.
fhahn added reviewers: reames, nikic, lebedev.ri, mkazantsev.
Herald added subscribers: hiraditya, nemanjai.
fhahn requested review of this revision.
Herald added a project: LLVM.

Currently generateOverflowCheck always creates code for Step being
negative and positive, followed by a select at the end depending on
Step's sign.

This patch updates the code to only create either the checks for step
being positive or negative, if the sign is known.

Follow-up to D116696 <https://reviews.llvm.org/D116696>.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D116747

Files:
  llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
  llvm/test/Transforms/LoopDistribute/scev-inserted-runtime-check.ll
  llvm/test/Transforms/LoopVectorize/PowerPC/optimal-epilog-vectorization.ll
  llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
  llvm/test/Transforms/LoopVectorize/X86/pr35432.ll
  llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
  llvm/test/Transforms/LoopVectorize/induction.ll
  llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
  llvm/test/Transforms/LoopVectorize/pr30654-phiscev-sext-trunc.ll
  llvm/test/Transforms/LoopVectorize/pr45259.ll
  llvm/test/Transforms/LoopVectorize/runtime-check-small-clamped-bounds.ll
  llvm/test/Transforms/LoopVersioning/wrapping-pointer-versioning.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D116747.397890.patch
Type: text/x-patch
Size: 42254 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220106/6688978b/attachment.bin>


More information about the llvm-commits mailing list