[llvm] [VPlan] Introduce VPSingleDefRecipe. (PR #77023)
    Florian Hahn via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Jan 11 06:04:37 PST 2024
    
    
  
================
@@ -8937,12 +8937,12 @@ void LoopVectorizationPlanner::adjustRecipesForReductions(
            "AnyOf reductions are not allowed for in-loop reductions");
 
     // Collect the chain of "link" recipes for the reduction starting at PhiR.
-    SetVector<VPRecipeBase *> Worklist;
+    SetVector<VPSingleDefRecipe *> Worklist;
     Worklist.insert(PhiR);
     for (unsigned I = 0; I != Worklist.size(); ++I) {
-      VPRecipeBase *Cur = Worklist[I];
-      for (VPUser *U : Cur->getVPSingleValue()->users()) {
-        auto *UserRecipe = dyn_cast<VPRecipeBase>(U);
+      VPSingleDefRecipe *Cur = Worklist[I];
+      for (VPUser *U : Cur->users()) {
+        auto *UserRecipe = dyn_cast<VPSingleDefRecipe>(U);
         if (!UserRecipe)
           continue;
         assert(UserRecipe->getNumDefinedValues() == 1 &&
----------------
fhahn wrote:
Done, also added an assert inside `if (!UserRecipe)` to assert that `U` is a VPLiveOut in that case.
https://github.com/llvm/llvm-project/pull/77023
    
    
More information about the llvm-commits
mailing list