[PATCH] D20789: Consecutive memory access in Loop Vectorizer - fixed and simplified
Elena Demikhovsky via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 1 05:56:56 PDT 2016
delena added a comment.
> This is done in AccessAnalysis::canCheckPtrAtRT (and implicitly in AccessAnalysis::processMemAccesses).
AccessAnalysis::canCheckPtrAtRT() returns true and DependentAccesses has these 2 accesses.
CanVecMem = DepChecker->areDepsSafe() returns true without checking anything
This is the code:
bool CanDoRTIfNeeded = Accesses.canCheckPtrAtRT(*PtrRtChecking, PSE->getSE(),
TheLoop, SymbolicStrides);
if (!CanDoRTIfNeeded) {
emitAnalysis(LoopAccessReport() << "cannot identify array bounds");
DEBUG(dbgs() << "LAA: We can't vectorize because we can't find "
<< "the array bounds.\n");
CanVecMem = false;
return;
}
DEBUG(dbgs() << "LAA: We can perform a memory runtime check if needed.\n");
CanVecMem = true;
if (Accesses.isDependencyCheckNeeded()) {
DEBUG(dbgs() << "LAA: Checking memory dependencies\n");
CanVecMem = DepChecker->areDepsSafe(
DependentAccesses, Accesses.getDependenciesToCheck(), SymbolicStrides);
Repository:
rL LLVM
https://reviews.llvm.org/D20789
More information about the llvm-commits
mailing list