From 0cc6165d0558afbd7d2a9b51435ffc9afdfbaa34 Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Fri, 4 Feb 2022 12:21:53 -0800 Subject: [PATCH] [SLP] Strengthen internal asserts about scheduled node state [NFC] All members of a scheduled bundle must have valid dependencies, with no unscheduled ones, and only the lead element gets marked scheduled. --- llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index ef8b770aeb2f..7370144a582a 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -2471,9 +2471,16 @@ private: } if (IsScheduled) { - assert(isSchedulingEntity() && hasValidDependencies() && - UnscheduledDeps == 0 && - "unexpected scheduled state"); + assert(isSchedulingEntity() && + "unexpected scheduled state"); + for (const ScheduleData *BundleMember = this; BundleMember; + BundleMember = BundleMember->NextInBundle) { + assert(BundleMember->hasValidDependencies() && + BundleMember->UnscheduledDeps == 0 && + "unexpected scheduled state"); + assert((BundleMember == this || !BundleMember->IsScheduled) && + "only bundle is marked scheduled"); + } } } -- 2.34.1