[PATCH] D95521: [SCEV] Apply loop guards to trailing zero bits

Gil Rapaport via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 27 06:04:25 PST 2021


gilr created this revision.
gilr added reviewers: fhahn, lebedev.ri, nikic.
Herald added subscribers: javed.absar, zzheng, hiraditya.
gilr requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Extend applyLoopGuards() to take into account conditions/assumes which prove some trailing bits to be zero by rewriting such SCEV's to explicitly zero those bits. This lets the loop unroller and the loop vectorizer identify more loops as not requiring remainder loops.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D95521

Files:
  llvm/include/llvm/Analysis/ScalarEvolution.h
  llvm/lib/Analysis/ScalarEvolution.cpp
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/test/Analysis/ScalarEvolution/trip-multiple-guard-info.ll
  llvm/test/Transforms/LoopUnroll/runtime-unroll-assume-no-remainder.ll
  llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95521.319544.patch
Type: text/x-patch
Size: 12916 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210127/da215ec9/attachment-0001.bin>


More information about the llvm-commits mailing list