[llvm] 449e2f5 - [LV] Remove more DT updates from legacy code path (NFCI).
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 6 06:35:41 PDT 2025
Author: Florian Hahn
Date: 2025-04-06T14:35:21+01:00
New Revision: 449e2f5d66d9d99f58611a8778d688e14d051ca0
URL: https://github.com/llvm/llvm-project/commit/449e2f5d66d9d99f58611a8778d688e14d051ca0
DIFF: https://github.com/llvm/llvm-project/commit/449e2f5d66d9d99f58611a8778d688e14d051ca0.diff
LOG: [LV] Remove more DT updates from legacy code path (NFCI).
Remove some legacy DT updates. Those should already be handled when
updating the DT during VPlan execution.
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 585caaffa63da..cf7804e19e722 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -2088,9 +2088,6 @@ class GeneratedRTChecks {
Pred->getTerminator()->replaceSuccessorWith(LoopVectorPreHeader,
SCEVCheckBlock);
- DT->addNewBlock(SCEVCheckBlock, Pred);
- DT->changeImmediateDominator(LoopVectorPreHeader, SCEVCheckBlock);
-
BranchInst &BI =
*BranchInst::Create(Bypass, LoopVectorPreHeader, SCEVCheckCond);
if (AddBranchWeights)
@@ -2115,8 +2112,6 @@ class GeneratedRTChecks {
Pred->getTerminator()->replaceSuccessorWith(LoopVectorPreHeader,
MemCheckBlock);
- DT->addNewBlock(MemCheckBlock, Pred);
- DT->changeImmediateDominator(LoopVectorPreHeader, MemCheckBlock);
MemCheckBlock->moveBefore(LoopVectorPreHeader);
BranchInst &BI =
@@ -2556,13 +2551,9 @@ void InnerLoopVectorizer::emitIterationCountCheck(BasicBlock *Bypass) {
}
// Create new preheader for vector loop.
- LoopVectorPreHeader =
- SplitBlock(TCCheckBlock, TCCheckBlock->getTerminator(), DT, LI, nullptr,
- "vector.ph");
-
- assert(DT->properlyDominates(DT->getNode(TCCheckBlock),
- DT->getNode(Bypass)->getIDom()) &&
- "TC check is expected to dominate Bypass");
+ LoopVectorPreHeader = SplitBlock(TCCheckBlock, TCCheckBlock->getTerminator(),
+ static_cast<DominatorTree *>(nullptr), LI,
+ nullptr, "vector.ph");
BranchInst &BI =
*BranchInst::Create(Bypass, LoopVectorPreHeader, CheckMinIters);
@@ -7957,13 +7948,10 @@ EpilogueVectorizerMainLoop::emitIterationCountCheck(BasicBlock *Bypass,
// Create new preheader for vector loop.
LoopVectorPreHeader = SplitBlock(TCCheckBlock, TCCheckBlock->getTerminator(),
- DT, LI, nullptr, "vector.ph");
+ static_cast<DominatorTree *>(nullptr), LI,
+ nullptr, "vector.ph");
if (ForEpilogue) {
- assert(DT->properlyDominates(DT->getNode(TCCheckBlock),
- DT->getNode(Bypass)->getIDom()) &&
- "TC check is expected to dominate Bypass");
-
LoopBypassBlocks.push_back(TCCheckBlock);
// Save the trip count so we don't have to regenerate it in the
@@ -8067,10 +8055,6 @@ EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(
assert(EPI.TripCount &&
"Expected trip count to have been saved in the first pass.");
- assert(
- (!isa<Instruction>(EPI.TripCount) ||
- DT->dominates(cast<Instruction>(EPI.TripCount)->getParent(), Insert)) &&
- "saved trip count does not dominate insertion point.");
Value *TC = EPI.TripCount;
IRBuilder<> Builder(Insert->getTerminator());
Value *Count = Builder.CreateSub(TC, EPI.VectorTripCount, "n.vec.remaining");
More information about the llvm-commits
mailing list