[llvm] 486992f - [SLP] improve code comments; NFC
    Sanjay Patel via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Jul  9 09:50:00 PDT 2021
    
    
  
Author: Sanjay Patel
Date: 2021-07-09T12:49:54-04:00
New Revision: 486992f958cedc0b0ce4ab29262deb48cc8c8a51
URL: https://github.com/llvm/llvm-project/commit/486992f958cedc0b0ce4ab29262deb48cc8c8a51
DIFF: https://github.com/llvm/llvm-project/commit/486992f958cedc0b0ce4ab29262deb48cc8c8a51.diff
LOG: [SLP] improve code comments; NFC
This likely started out only supporint binops,
but now we handle min/max using cmp+sel, and
we may extend to handle bool logic in the form
of select.
Added: 
    
Modified: 
    llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Removed: 
    
################################################################################
diff  --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 7c49a952c62e..246f755eac03 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -7517,7 +7517,7 @@ class HorizontalReduction {
   }
 
   /// Checks if the instruction is in basic block \p BB.
-  /// For a min/max reduction check that both compare and select are in \p BB.
+  /// For a cmp+sel min/max reduction check that both ops are in \p BB.
   static bool hasSameParent(Instruction *I, BasicBlock *BB) {
     if (isCmpSelMinMax(I)) {
       auto *Sel = cast<SelectInst>(I);
@@ -7624,8 +7624,8 @@ class HorizontalReduction {
     // potential candidate for the reduction.
     unsigned LeafOpcode = 0;
 
-    // Post order traverse the reduction tree starting at B. We only handle true
-    // trees containing only binary operators.
+    // Post-order traverse the reduction tree starting at Inst. We only handle
+    // true trees containing binary operators or selects.
     SmallVector<std::pair<Instruction *, unsigned>, 32> Stack;
     Stack.push_back(std::make_pair(Inst, getFirstOperandIndex(Inst)));
     initReductionOps(Inst);
@@ -7661,7 +7661,7 @@ class HorizontalReduction {
         continue;
       }
 
-      // Visit left or right.
+      // Visit operands.
       Value *EdgeVal = TreeN->getOperand(EdgeToVisit);
       auto *EdgeInst = dyn_cast<Instruction>(EdgeVal);
       if (!EdgeInst) {
        
    
    
More information about the llvm-commits
mailing list