diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 387d144d89a3c..9bba73bcc8391 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -2637,6 +2637,9 @@ class BoUpSLP { } ScheduleData *getScheduleData(Instruction *I) { + if (BB != I->getParent()) + // Avoid lookup if can't possibly be in map. + return nullptr; ScheduleData *SD = ScheduleDataMap[I]; if (SD && isInSchedulingRegion(SD)) return SD;