[PATCH] D67178: [SCEV] Use loop guard info when computing the max BE taken count in howFarToZero.
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 4 08:14:36 PDT 2019
fhahn created this revision.
fhahn added reviewers: sanjoy.google, reames, efriedma.
Herald added subscribers: hiraditya, javed.absar.
Herald added a project: LLVM.
For some expressions, we can use information from loop guards when
we are looking for a maximum. This patch applies information from
loop guards to the expression used to compute the maximum backedge
taken count in howFarToZero. It currently replaces an unknown
expression X with UMin(X, Y), if the loop is guarded by
X ult Y.
This patch is minimal in what conditions it applies, and there
are a few TODOs to generalize.
This partly addresses PR40961. We will also need an update to
LV to address it completely.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D67178
Files:
llvm/include/llvm/Analysis/ScalarEvolution.h
llvm/lib/Analysis/ScalarEvolution.cpp
llvm/test/Transforms/LoopVectorize/AArch64/pr36032.ll
llvm/unittests/Analysis/ScalarEvolutionTest.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67178.218713.patch
Type: text/x-patch
Size: 12330 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190904/95091d61/attachment.bin>
More information about the llvm-commits
mailing list