diff --git a/llvm/include/llvm/Support/GenericDomTree.h b/llvm/include/llvm/Support/GenericDomTree.h index 920983e7bd80..832b6e02daf5 100644 --- a/llvm/include/llvm/Support/GenericDomTree.h +++ b/llvm/include/llvm/Support/GenericDomTree.h @@ -384,15 +384,11 @@ protected: private: std::optional getNodeIndex(const NodeT *BB) const { if constexpr (GraphHasNodeNumbers) { + // BB can be nullptr, map nullptr to index 0. assert(BlockNumberEpoch == GraphTraits::getNumberEpoch(Parent) && "dominator tree used with outdated block numbers"); - if constexpr (IsPostDom) { - if (!BB) - return 0; // BB may be nullptr for post-dominator tree, map to 0. - } else - assert(BB && "dominator tree block must be non-null"); - return GraphTraits::getNumber(BB) + 1; + return BB ? GraphTraits::getNumber(BB) + 1 : 0; } else { if (auto It = NodeNumberMap.find(BB); It != NodeNumberMap.end()) return It->second; diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 6b459e046da3..97ba8eee6742 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -28333,8 +28333,6 @@ bool SLPVectorizerPass::vectorizeGEPIndices(BasicBlock *BB, BoUpSLP &R) { const SCEV *SCEVI = SE->getSCEV(GEPList[I]); for (int J = I + 1; J < E && Candidates.size() > 1; ++J) { auto *GEPJ = GEPList[J]; - if (!Candidates.count(GEPJ)) - continue; const SCEV *SCEVJ = SE->getSCEV(GEPList[J]); if (isa(SE->getMinusSCEV(SCEVI, SCEVJ))) { Candidates.remove(GEPI); diff --git a/polly/lib/Analysis/ScopBuilder.cpp b/polly/lib/Analysis/ScopBuilder.cpp index f4d654fa74cb..1ea9a554f761 100644 --- a/polly/lib/Analysis/ScopBuilder.cpp +++ b/polly/lib/Analysis/ScopBuilder.cpp @@ -637,7 +637,7 @@ void ScopBuilder::propagateDomainConstraintsToRegionExit( auto *RI = scop->getRegion().getRegionInfo(); auto *BBReg = RI ? RI->getRegionFor(BB) : nullptr; auto *ExitBB = BBReg ? BBReg->getExit() : nullptr; - if (!BBReg || BBReg->getEntry() != BB || !ExitBB || !scop->contains(ExitBB)) + if (!BBReg || BBReg->getEntry() != BB || !scop->contains(ExitBB)) return; // Do not propagate the domain if there is a loop backedge inside the region