[all-commits] [llvm/llvm-project] d4ddf6: [SCEV] Use loop guard info when computing the max ...
Florian Hahn via All-commits
all-commits at lists.llvm.org
Thu Sep 24 03:14:27 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: d4ddf63fc40cfbbc348adcc45cdc6f6d78268c5c
https://github.com/llvm/llvm-project/commit/d4ddf63fc40cfbbc348adcc45cdc6f6d78268c5c
Author: Florian Hahn <flo at fhahn.com>
Date: 2020-09-24 (Thu, 24 Sep 2020)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
M llvm/test/Transforms/LoopVectorize/AArch64/pr36032.ll
M llvm/unittests/Analysis/ScalarEvolutionTest.cpp
Log Message:
-----------
[SCEV] Use loop guard info when computing the max BE taken count in howFarToZero.
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.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D67178
More information about the All-commits
mailing list