[llvm] 0ebac76 - [LV] Remove unneeded Loop argument from completeLoopSkeleton. (NFCI)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 21 03:07:48 PDT 2022
Author: Florian Hahn
Date: 2022-03-21T10:07:25Z
New Revision: 0ebac76e6ebe263ea91685c90e750eab6976acb9
URL: https://github.com/llvm/llvm-project/commit/0ebac76e6ebe263ea91685c90e750eab6976acb9
DIFF: https://github.com/llvm/llvm-project/commit/0ebac76e6ebe263ea91685c90e750eab6976acb9.diff
LOG: [LV] Remove unneeded Loop argument from completeLoopSkeleton. (NFCI)
completeLoopSkeleton only uses its loop argument only to get the
pre-header, but the pre-header is already known (we created/cached it
earlier). Remove the unneeded loop argument.
Added:
Modified:
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index edf323d749c38..4b887fa401329 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -646,9 +646,8 @@ class InnerLoopVectorizer {
/// Complete the loop skeleton by adding debug MDs, creating appropriate
/// conditional branches in the middle block, preparing the builder and
- /// running the verifier. Take in the vector loop \p L as argument, and return
- /// the preheader of the completed vector loop.
- BasicBlock *completeLoopSkeleton(Loop *L, MDNode *OrigLoopID);
+ /// running the verifier. Return the preheader of the completed vector loop.
+ BasicBlock *completeLoopSkeleton(MDNode *OrigLoopID);
/// Add additional metadata to \p To that was not present on \p Orig.
///
@@ -3234,13 +3233,10 @@ void InnerLoopVectorizer::createInductionResumeValues(
}
}
-BasicBlock *InnerLoopVectorizer::completeLoopSkeleton(Loop *L,
- MDNode *OrigLoopID) {
- assert(L && "Expected valid loop.");
-
+BasicBlock *InnerLoopVectorizer::completeLoopSkeleton(MDNode *OrigLoopID) {
// The trip counts should be cached by now.
- Value *Count = getOrCreateTripCount(L->getLoopPreheader());
- Value *VectorTripCount = getOrCreateVectorTripCount(L->getLoopPreheader());
+ Value *Count = getOrCreateTripCount(LoopVectorPreHeader);
+ Value *VectorTripCount = getOrCreateVectorTripCount(LoopVectorPreHeader);
auto *ScalarLatchTerm = OrigLoop->getLoopLatch()->getTerminator();
@@ -3265,10 +3261,6 @@ BasicBlock *InnerLoopVectorizer::completeLoopSkeleton(Loop *L,
cast<BranchInst>(LoopMiddleBlock->getTerminator())->setCondition(CmpN);
}
- // Get ready to start creating new instructions into the vectorized body.
- assert(LoopVectorPreHeader == L->getLoopPreheader() &&
- "Inconsistent vector loop preheader");
-
#ifdef EXPENSIVE_CHECKS
assert(DT->verify(DominatorTree::VerificationLevel::Fast));
LI->verify(*DT);
@@ -3348,7 +3340,7 @@ InnerLoopVectorizer::createVectorizedLoopSkeleton() {
// Emit phis for the new starting index of the scalar loop.
createInductionResumeValues(Lp);
- return {completeLoopSkeleton(Lp, OrigLoopID), nullptr};
+ return {completeLoopSkeleton(OrigLoopID), nullptr};
}
// Fix up external users of the induction variable. At this point, we are
@@ -7897,7 +7889,7 @@ EpilogueVectorizerMainLoop::createEpilogueVectorizedLoopSkeleton() {
// because the vplan in the second pass still contains the inductions from the
// original loop.
- return {completeLoopSkeleton(Lp, OrigLoopID), nullptr};
+ return {completeLoopSkeleton(OrigLoopID), nullptr};
}
void EpilogueVectorizerMainLoop::printDebugTracesAtStart() {
@@ -8076,7 +8068,7 @@ EpilogueVectorizerEpilogueLoop::createEpilogueVectorizedLoopSkeleton() {
createInductionResumeValues(Lp, {VecEpilogueIterationCountCheck,
EPI.VectorTripCount} /* AdditionalBypass */);
- return {completeLoopSkeleton(Lp, OrigLoopID), EPResumeVal};
+ return {completeLoopSkeleton(OrigLoopID), EPResumeVal};
}
BasicBlock *
More information about the llvm-commits
mailing list