diff options
Diffstat (limited to 'lib/Analysis/CFGReachabilityAnalysis.cpp')
-rw-r--r-- | lib/Analysis/CFGReachabilityAnalysis.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/Analysis/CFGReachabilityAnalysis.cpp b/lib/Analysis/CFGReachabilityAnalysis.cpp index 6f557e092fd7f..cdad5b57aee8a 100644 --- a/lib/Analysis/CFGReachabilityAnalysis.cpp +++ b/lib/Analysis/CFGReachabilityAnalysis.cpp @@ -27,13 +27,13 @@ CFGReverseBlockReachabilityAnalysis::CFGReverseBlockReachabilityAnalysis( bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src, const CFGBlock *Dst) { const unsigned DstBlockID = Dst->getBlockID(); - + // If we haven't analyzed the destination node, run the analysis now if (!analyzed[DstBlockID]) { mapReachability(Dst); analyzed[DstBlockID] = true; } - + // Return the cached result return reachable[DstBlockID][Src->getBlockID()]; } @@ -43,10 +43,10 @@ bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src, void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) { SmallVector<const CFGBlock *, 11> worklist; llvm::BitVector visited(analyzed.size()); - + ReachableSet &DstReachability = reachable[Dst->getBlockID()]; DstReachability.resize(analyzed.size(), false); - + // Start searching from the destination node, since we commonly will perform // multiple queries relating to a destination node. worklist.push_back(Dst); @@ -58,7 +58,7 @@ void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) { if (visited[block->getBlockID()]) continue; visited[block->getBlockID()] = true; - + // Update reachability information for this node -> Dst if (!firstRun) { // Don't insert Dst -> Dst unless it was a predecessor of itself @@ -66,9 +66,9 @@ void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) { } else firstRun = false; - + // Add the predecessors to the worklist. - for (CFGBlock::const_pred_iterator i = block->pred_begin(), + for (CFGBlock::const_pred_iterator i = block->pred_begin(), e = block->pred_end(); i != e; ++i) { if (*i) worklist.push_back(*i); |