diff options
Diffstat (limited to 'contrib/llvm/lib/IR/Dominators.cpp')
| -rw-r--r-- | contrib/llvm/lib/IR/Dominators.cpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/contrib/llvm/lib/IR/Dominators.cpp b/contrib/llvm/lib/IR/Dominators.cpp index 4d7e3040ecd7..ad448a3f240c 100644 --- a/contrib/llvm/lib/IR/Dominators.cpp +++ b/contrib/llvm/lib/IR/Dominators.cpp @@ -33,9 +33,9 @@ bool llvm::VerifyDomInfo = true; #else bool llvm::VerifyDomInfo = false; #endif -static cl::opt<bool,true> -VerifyDomInfoX("verify-dom-info", cl::location(VerifyDomInfo), - cl::desc("Verify dominator info (time consuming)")); +static cl::opt<bool, true> + VerifyDomInfoX("verify-dom-info", cl::location(VerifyDomInfo), cl::Hidden, + cl::desc("Verify dominator info (time consuming)")); bool BasicBlockEdge::isSingleEdge() const { const TerminatorInst *TI = Start->getTerminator(); @@ -64,12 +64,12 @@ template class llvm::DomTreeNodeBase<BasicBlock>; template class llvm::DominatorTreeBase<BasicBlock, false>; // DomTreeBase template class llvm::DominatorTreeBase<BasicBlock, true>; // PostDomTreeBase -template void -llvm::DomTreeBuilder::Calculate<DomTreeBuilder::BBDomTree, Function>( - DomTreeBuilder::BBDomTree &DT, Function &F); -template void -llvm::DomTreeBuilder::Calculate<DomTreeBuilder::BBPostDomTree, Function>( - DomTreeBuilder::BBPostDomTree &DT, Function &F); +template struct llvm::DomTreeBuilder::Update<BasicBlock *>; + +template void llvm::DomTreeBuilder::Calculate<DomTreeBuilder::BBDomTree>( + DomTreeBuilder::BBDomTree &DT); +template void llvm::DomTreeBuilder::Calculate<DomTreeBuilder::BBPostDomTree>( + DomTreeBuilder::BBPostDomTree &DT); template void llvm::DomTreeBuilder::InsertEdge<DomTreeBuilder::BBDomTree>( DomTreeBuilder::BBDomTree &DT, BasicBlock *From, BasicBlock *To); @@ -81,6 +81,11 @@ template void llvm::DomTreeBuilder::DeleteEdge<DomTreeBuilder::BBDomTree>( template void llvm::DomTreeBuilder::DeleteEdge<DomTreeBuilder::BBPostDomTree>( DomTreeBuilder::BBPostDomTree &DT, BasicBlock *From, BasicBlock *To); +template void llvm::DomTreeBuilder::ApplyUpdates<DomTreeBuilder::BBDomTree>( + DomTreeBuilder::BBDomTree &DT, DomTreeBuilder::BBUpdates); +template void llvm::DomTreeBuilder::ApplyUpdates<DomTreeBuilder::BBPostDomTree>( + DomTreeBuilder::BBPostDomTree &DT, DomTreeBuilder::BBUpdates); + template bool llvm::DomTreeBuilder::Verify<DomTreeBuilder::BBDomTree>( const DomTreeBuilder::BBDomTree &DT); template bool llvm::DomTreeBuilder::Verify<DomTreeBuilder::BBPostDomTree>( @@ -310,10 +315,14 @@ void DominatorTree::verifyDomTree() const { DominatorTree OtherDT; OtherDT.recalculate(F); if (compare(OtherDT)) { - errs() << "DominatorTree is not up to date!\nComputed:\n"; + errs() << "DominatorTree for function " << F.getName() + << " is not up to date!\nComputed:\n"; print(errs()); errs() << "\nActual:\n"; OtherDT.print(errs()); + errs() << "\nCFG:\n"; + F.print(errs()); + errs().flush(); abort(); } } |
