[all-commits] [llvm/llvm-project] d47503: [SCEV] Apply loop guards to divisibility tests
Gil Rapaport via All-commits
all-commits at lists.llvm.org
Mon Feb 1 22:10:49 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d475030dc28a85e649cdd3dd4e5941ec82227c26
https://github.com/llvm/llvm-project/commit/d475030dc28a85e649cdd3dd4e5941ec82227c26
Author: Gil Rapaport <gil.rapaport at intel.com>
Date: 2021-02-02 (Tue, 02 Feb 2021)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Analysis/ScalarEvolution/trip-multiple-guard-info.ll
A llvm/test/Transforms/LoopUnroll/runtime-unroll-assume-no-remainder.ll
M llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
Log Message:
-----------
[SCEV] Apply loop guards to divisibility tests
Extend applyLoopGuards() to take into account conditions/assumes proving some
value %v to be divisible by D by rewriting %v to (%v / D) * D. This lets the
loop unroller and the loop vectorizer identify more loops as not requiring
remainder loops.
Differential Revision: https://reviews.llvm.org/D95521
More information about the All-commits
mailing list