[PATCH] D29641: [SLP] Fix for PR31847: Assertion failed: (isLoopInvariant(Operands[i], L) && "SCEVAddRecExpr operand is not loop-invariant!")

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 6 23:55:11 PST 2017


ABataev added inline comments.


================
Comment at: lib/Transforms/Vectorize/SLPVectorizer.cpp:2981
                   is_contained(UserIgnoreList, U)) &&
                  "Replacing out-of-tree value with undef");
         }
----------------
mkuper wrote:
> This comment no longer makes sense.
> Does the whole check?
I'll fix the comment, but the check itself is important.


================
Comment at: lib/Transforms/Vectorize/SLPVectorizer.cpp:4504
+      // vector reductions (except for ReductionRoot node).
+      V.markForDeletion(
+          makeArrayRef(ReductionOps.begin(), std::prev(ReductionOps.end())));
----------------
mkuper wrote:
> Is there any interaction with the "extra values" stuff?
I reworked this part. Extra args are not removed, but the users of extra args are stored as ReductionOps and will be automatically marked for deletion


https://reviews.llvm.org/D29641





More information about the llvm-commits mailing list