diff options
| author | Chris Lattner <sabre@nondot.org> | 2003-11-10 04:42:42 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2003-11-10 04:42:42 +0000 | 
| commit | 1e6d3053f271aa12f12c5febd579ef30427015b5 (patch) | |
| tree | f1421d438c2a40dadf463d5719f3d76a14eac0cd /llvm/lib/Transforms/Utils | |
| parent | 6d839e50c9a3e732da5a12f027d0880d512e0d53 (diff) | |
| download | bcm5719-llvm-1e6d3053f271aa12f12c5febd579ef30427015b5.tar.gz bcm5719-llvm-1e6d3053f271aa12f12c5febd579ef30427015b5.zip | |
Reorganize code for locality, improve comments
llvm-svn: 9857
Diffstat (limited to 'llvm/lib/Transforms/Utils')
| -rw-r--r-- | llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp | 42 | 
1 files changed, 23 insertions, 19 deletions
| diff --git a/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp b/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp index 5d31016fe8b..de59db2f9bc 100644 --- a/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp +++ b/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp @@ -11,7 +11,8 @@  // inserting a dummy basic block.  This pass may be "required" by passes that  // cannot deal with critical edges.  For this usage, the structure type is  // forward declared.  This pass obviously invalidates the CFG, but can update -// forward dominator (set, immediate dominators, and tree) information. +// forward dominator (set, immediate dominators, tree, and frontier) +// information.  //  //===----------------------------------------------------------------------===// @@ -49,6 +50,27 @@ namespace {  const PassInfo *BreakCriticalEdgesID = X.getPassInfo();  Pass *createBreakCriticalEdgesPass() { return new BreakCriticalEdges(); } +// runOnFunction - Loop over all of the edges in the CFG, breaking critical +// edges as they are found. +// +bool BreakCriticalEdges::runOnFunction(Function &F) { +  bool Changed = false; +  for (Function::iterator I = F.begin(), E = F.end(); I != E; ++I) { +    TerminatorInst *TI = I->getTerminator(); +    if (TI->getNumSuccessors() > 1) +      for (unsigned i = 0, e = TI->getNumSuccessors(); i != e; ++i) +        if (SplitCriticalEdge(TI, i, this)) { +          ++NumBroken; +          Changed = true; +        } +  } + +  return Changed; +} + +//===----------------------------------------------------------------------===// +//    Implementation of the external critical edge manipulation functions +//===----------------------------------------------------------------------===//  // isCriticalEdge - Return true if the specified edge is a critical edge.  // Critical edges are edges from a block with multiple successors to a block @@ -146,21 +168,3 @@ bool SplitCriticalEdge(TerminatorInst *TI, unsigned SuccNum, Pass *P) {    }    return true;  } - -// runOnFunction - Loop over all of the edges in the CFG, breaking critical -// edges as they are found. -// -bool BreakCriticalEdges::runOnFunction(Function &F) { -  bool Changed = false; -  for (Function::iterator I = F.begin(), E = F.end(); I != E; ++I) { -    TerminatorInst *TI = I->getTerminator(); -    if (TI->getNumSuccessors() > 1) -      for (unsigned i = 0, e = TI->getNumSuccessors(); i != e; ++i) -        if (SplitCriticalEdge(TI, i, this)) { -          ++NumBroken; -          Changed = true; -        } -  } - -  return Changed; -} | 

