From 0aa75fb12faa04e07ba1a6e334605357b6a159c9 Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Sun, 10 Jan 2021 12:31:05 -0500 Subject: [PATCH] [SLP] put verifyFunction call behind EXPENSIVE_CHECKS A severe compile-time slowdown from this call is noted in: https://llvm.org/PR48689 My naive fix was to put it under LLVM_DEBUG ( 267ff79 ), but that's not limiting in the way we want. This is a quick fix (or we could just remove the call completely and rely on some later pass to discover potentially wrong IR?). A bigger/better fix would be to improve/limit verifyFunction() as noted in: https://llvm.org/PR47712 Differential Revision: https://reviews.llvm.org/D94328 --- llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index f124dd8..d0b6b43 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -2499,7 +2499,11 @@ BoUpSLP::~BoUpSLP() { "trying to erase instruction with users."); Pair.getFirst()->eraseFromParent(); } - LLVM_DEBUG(verifyFunction(*F)); +#ifdef EXPENSIVE_CHECKS + // If we could guarantee that this call is not extremely slow, we could + // remove the ifdef limitation (see PR47712). + assert(!verifyFunction(*F, %dbgs())); +#endif } void BoUpSLP::eraseInstructions(ArrayRef AV) { -- 2.7.4