Introduce llvm::SplitAllCriticalEdges

Summary:
move the code from BreakCriticalEdges::runOnFunction()
into a separate utility function llvm::SplitAllCriticalEdges()
so that it can be used independently.
No functionality change intended.

Test Plan: check-llvm

Reviewers: nlewycky

Reviewed By: nlewycky

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6313

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222288 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Kostya Serebryany
2014-11-19 00:17:31 +00:00
parent 2b82868de5
commit f82e60f03d
3 changed files with 22 additions and 19 deletions

View File

@ -133,6 +133,11 @@ inline BasicBlock *SplitCriticalEdge(BasicBlock *Src, BasicBlock *Dst,
}
}
// SplitAllCriticalEdges - Loop over all of the edges in the CFG,
// breaking critical edges as they are found. Pass P must not be NULL.
// Returns the number of broken edges.
unsigned SplitAllCriticalEdges(Function &F, Pass *P);
/// SplitEdge - Split the edge connecting specified block. Pass P must
/// not be NULL.
BasicBlock *SplitEdge(BasicBlock *From, BasicBlock *To, Pass *P);