diff --git a/llvm/lib/Transforms/Instrumentation/ComprehensiveStaticInstrumentation.cpp b/llvm/lib/Transforms/Instrumentation/ComprehensiveStaticInstrumentation.cpp index 2b7c3d2adbd3..9e0828dbb968 100644 --- a/llvm/lib/Transforms/Instrumentation/ComprehensiveStaticInstrumentation.cpp +++ b/llvm/lib/Transforms/Instrumentation/ComprehensiveStaticInstrumentation.cpp @@ -2462,6 +2462,8 @@ void CSIImpl::instrumentFunction(Function &F) { // Ignore Tapir placeholder basic blocks if (&F.getEntryBlock() != &BB && isTapirPlaceholderSuccessor(&BB)) continue; + if (!DT->isReachableFromEntry(&BB)) + continue; SmallVector BBLoadsAndStores; for (Instruction &I : BB) { if (isAtomic(&I)) @@ -2475,7 +2477,6 @@ void CSIImpl::instrumentFunction(Function &F) { Syncs.push_back(SI); if (isSyncUnwind(SI->getSuccessor(0)->getFirstNonPHIOrDbgOrLifetime(), /*SyncRegion=*/nullptr, /*CheckForInvoke=*/true)) { - dbgs() << "Sync " << *SI << "has unwind\n" << F; SyncsWithUnwinds.insert(SI); BBsToIgnore.insert(SI->getSuccessor(0)); }