/// in 'Worklist' has been reached then 'StopBB' can not be executed.
/// Conservatively returns true.
bool isPotentiallyReachableFromMany(
- SmallVectorImpl<BasicBlock *> &Worklist, BasicBlock *StopBB,
+ SmallVectorImpl<BasicBlock *> &Worklist, const BasicBlock *StopBB,
const SmallPtrSetImpl<BasicBlock *> *ExclusionSet,
const DominatorTree *DT = nullptr, const LoopInfo *LI = nullptr);
}
bool llvm::isPotentiallyReachableFromMany(
- SmallVectorImpl<BasicBlock *> &Worklist, BasicBlock *StopBB,
+ SmallVectorImpl<BasicBlock *> &Worklist, const BasicBlock *StopBB,
const SmallPtrSetImpl<BasicBlock *> *ExclusionSet, const DominatorTree *DT,
const LoopInfo *LI) {
// When the stop block is unreachable, it's dominated from everywhere,
SmallVector<BasicBlock*, 32> Worklist;
Worklist.push_back(const_cast<BasicBlock*>(A));
- return isPotentiallyReachableFromMany(Worklist, const_cast<BasicBlock *>(B),
- ExclusionSet, DT, LI);
+ return isPotentiallyReachableFromMany(Worklist, B, ExclusionSet, DT, LI);
}
bool llvm::isPotentiallyReachable(
return false;
}
- return isPotentiallyReachableFromMany(
- Worklist, const_cast<BasicBlock *>(B->getParent()), ExclusionSet,
- DT, LI);
+ return isPotentiallyReachableFromMany(Worklist, B->getParent(),
+ ExclusionSet, DT, LI);
}
return isPotentiallyReachable(