[llvm] [VPlan] Replace VPRegionBlock with explicit CFG before execute (NFCI). (PR #117506)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon May 12 04:36:52 PDT 2025
================
@@ -1360,16 +1384,16 @@ void VPlanPrinter::dumpRegion(const VPRegionBlock *Region) {
#endif
-/// Returns true if there is a vector loop region and \p VPV is defined in a
-/// loop region.
-static bool isDefinedInsideLoopRegions(const VPValue *VPV) {
- const VPRecipeBase *DefR = VPV->getDefiningRecipe();
- return DefR && (!DefR->getParent()->getPlan()->getVectorLoopRegion() ||
- DefR->getParent()->getEnclosingLoopRegion());
-}
-
bool VPValue::isDefinedOutsideLoopRegions() const {
- return !isDefinedInsideLoopRegions(this);
+ auto *DefR = getDefiningRecipe();
+ if (!DefR)
+ return true;
+
+ const VPBasicBlock *DefVPBB = DefR->getParent();
+ auto *Plan = DefVPBB->getPlan();
+ if (Plan->getVectorLoopRegion())
+ return !DefR->getParent()->getEnclosingLoopRegion();
+ return DefVPBB == Plan->getEntry();
----------------
fhahn wrote:
All relevant hoisting should already have happened before disolving the regions; updated to only check non-live-ins if the top-level loop region still exists.
https://github.com/llvm/llvm-project/pull/117506
More information about the llvm-commits
mailing list