[llvm] 9277a32 - [VPlan] Funnel recipe insert* through VPBasicBlock::insert (NFCI).
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 11 03:58:04 PDT 2024
Author: Florian Hahn
Date: 2024-03-11T10:56:40Z
New Revision: 9277a32305c1083653ffaa7955cd26deffc10988
URL: https://github.com/llvm/llvm-project/commit/9277a32305c1083653ffaa7955cd26deffc10988
DIFF: https://github.com/llvm/llvm-project/commit/9277a32305c1083653ffaa7955cd26deffc10988.diff
LOG: [VPlan] Funnel recipe insert* through VPBasicBlock::insert (NFCI).
This allows relying on VPBasicBlock::insert to make sure insertion is
well formed, i.e. by updating the recipe's parent as well as other
potential invariants in the future.
Added:
Modified:
llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
index 40ebec7305b467..d75e322a74cfa6 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
@@ -198,24 +198,21 @@ void VPRecipeBase::insertBefore(VPRecipeBase *InsertPos) {
assert(!Parent && "Recipe already in some VPBasicBlock");
assert(InsertPos->getParent() &&
"Insertion position not in any VPBasicBlock");
- Parent = InsertPos->getParent();
- Parent->getRecipeList().insert(InsertPos->getIterator(), this);
+ InsertPos->getParent()->insert(this, InsertPos->getIterator());
}
void VPRecipeBase::insertBefore(VPBasicBlock &BB,
iplist<VPRecipeBase>::iterator I) {
assert(!Parent && "Recipe already in some VPBasicBlock");
assert(I == BB.end() || I->getParent() == &BB);
- Parent = &BB;
- BB.getRecipeList().insert(I, this);
+ BB.insert(this, I);
}
void VPRecipeBase::insertAfter(VPRecipeBase *InsertPos) {
assert(!Parent && "Recipe already in some VPBasicBlock");
assert(InsertPos->getParent() &&
"Insertion position not in any VPBasicBlock");
- Parent = InsertPos->getParent();
- Parent->getRecipeList().insertAfter(InsertPos->getIterator(), this);
+ InsertPos->getParent()->insert(this, std::next(InsertPos->getIterator()));
}
void VPRecipeBase::removeFromParent() {
More information about the llvm-commits
mailing list