]> granicus.if.org Git - clang/commitdiff
Rename class 'CFGReachabilityAnalysis' to 'CFGReverseBlockReachabilityAnalysis'.
authorTed Kremenek <kremenek@apple.com>
Sat, 19 Mar 2011 01:00:33 +0000 (01:00 +0000)
committerTed Kremenek <kremenek@apple.com>
Sat, 19 Mar 2011 01:00:33 +0000 (01:00 +0000)
This rename serves two purposes:

- It reflects the actual functionality of this analysis.
- We will have more than one reachability analysis.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127930 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h
include/clang/Analysis/AnalysisContext.h
lib/Analysis/AnalysisContext.cpp
lib/Analysis/CFGReachabilityAnalysis.cpp
lib/Sema/AnalysisBasedWarnings.cpp
lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp

index 72f644aaf0287a79a8e0676a291b32bef2c6ef1c..a61d9e47881d914cd68576aeffcf020504aa42c7 100644 (file)
@@ -29,13 +29,13 @@ class CFGBlock;
 // tend to have a common destination, so we lazily do a predecessor search
 // from the destination node and cache the results to prevent work
 // duplication.
-class CFGReachabilityAnalysis {
+class CFGReverseBlockReachabilityAnalysis {
   typedef llvm::BitVector ReachableSet;
   typedef llvm::DenseMap<unsigned, ReachableSet> ReachableMap;
   ReachableSet analyzed;
   ReachableMap reachable;
 public:
-  CFGReachabilityAnalysis(const CFG &cfg);
+  CFGReverseBlockReachabilityAnalysis(const CFG &cfg);
 
   /// Returns true if the block 'Dst' can be reached from block 'Src'.
   bool isReachable(const CFGBlock *Src, const CFGBlock *Dst);
index c4dbcb88254b2294f05f3c21817504803216df8f..66c12a5384d4c529a3807033c26821739dff6dee 100644 (file)
@@ -28,7 +28,7 @@ namespace clang {
 
 class Decl;
 class Stmt;
-class CFGReachabilityAnalysis;
+class CFGReverseBlockReachabilityAnalysis;
 class CFGStmtMap;
 class LiveVariables;
 class ParentMap;
@@ -60,7 +60,7 @@ class AnalysisContext {
   llvm::OwningPtr<LiveVariables> relaxedLiveness;
   llvm::OwningPtr<ParentMap> PM;
   llvm::OwningPtr<PseudoConstantAnalysis> PCA;
-  llvm::OwningPtr<CFGReachabilityAnalysis> CFA;
+  llvm::OwningPtr<CFGReverseBlockReachabilityAnalysis> CFA;
 
   llvm::BumpPtrAllocator A;
 
@@ -100,7 +100,7 @@ public:
   
   CFGStmtMap *getCFGStmtMap();
 
-  CFGReachabilityAnalysis *getCFGReachablityAnalysis();
+  CFGReverseBlockReachabilityAnalysis *getCFGReachablityAnalysis();
   
   /// Return a version of the CFG without any edges pruned.
   CFG *getUnoptimizedCFG();
index 461468de92b1734ea6ee74a07943a82a18a12152..ddc5e887031b89cd3bc3989db14f7d45ab4515f3 100644 (file)
@@ -132,12 +132,12 @@ CFGStmtMap *AnalysisContext::getCFGStmtMap() {
   return 0;
 }
 
-CFGReachabilityAnalysis *AnalysisContext::getCFGReachablityAnalysis() {
+CFGReverseBlockReachabilityAnalysis *AnalysisContext::getCFGReachablityAnalysis() {
   if (CFA)
     return CFA.get();
   
   if (CFG *c = getCFG()) {
-    CFA.reset(new CFGReachabilityAnalysis(*c));
+    CFA.reset(new CFGReverseBlockReachabilityAnalysis(*c));
     return CFA.get();
   }
   
index 77865849014a4ca7e8ff40804c675f0883c5341b..65cd0898573cee2d95d50cdbcc1911622c79f059 100644 (file)
 
 using namespace clang;
 
-CFGReachabilityAnalysis::CFGReachabilityAnalysis(const CFG &cfg)
+CFGReverseBlockReachabilityAnalysis::CFGReverseBlockReachabilityAnalysis(const CFG &cfg)
   : analyzed(cfg.getNumBlockIDs(), false) {}
 
-bool CFGReachabilityAnalysis::isReachable(const CFGBlock *Src,
+bool CFGReverseBlockReachabilityAnalysis::isReachable(const CFGBlock *Src,
                                           const CFGBlock *Dst) {
 
   const unsigned DstBlockID = Dst->getBlockID();
@@ -39,7 +39,7 @@ bool CFGReachabilityAnalysis::isReachable(const CFGBlock *Src,
 
 // Maps reachability to a common node by walking the predecessors of the
 // destination node.
-void CFGReachabilityAnalysis::mapReachability(const CFGBlock *Dst) {
+void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) {
   llvm::SmallVector<const CFGBlock *, 11> worklist;
   llvm::BitVector visited(analyzed.size());
   
index 6522d95ec3c000b061c70a0f1ed44ff517717284..bcbf887916be6654b3737ed0eb0288e210221b7d 100644 (file)
@@ -576,7 +576,7 @@ AnalysisBasedWarnings::IssueWarnings(sema::AnalysisBasedWarnings::Policy P,
         if (const Stmt *stmt = i->stmt) {
           const CFGBlock *block = AC.getBlockForRegisteredExpression(stmt);
           assert(block);
-          if (CFGReachabilityAnalysis *cra = AC.getCFGReachablityAnalysis()) {
+          if (CFGReverseBlockReachabilityAnalysis *cra = AC.getCFGReachablityAnalysis()) {
             // Can this block be reached from the entrance?
             if (cra->isReachable(&AC.getCFG()->getEntry(), block))
               S.Diag(D.Loc, D.PD);
index b2177c9a75d7475457d98684d34b0ef86815b1d9..8e4c6732c4aa37ff3ee3ea4d18e5d5b1ff6c48c3 100644 (file)
@@ -531,7 +531,7 @@ IdempotentOperationChecker::pathWasCompletelyAnalyzed(AnalysisContext *AC,
                                                       const CFGBlock *CB,
                                                       const CoreEngine &CE) {
 
-  CFGReachabilityAnalysis *CRA = AC->getCFGReachablityAnalysis();
+  CFGReverseBlockReachabilityAnalysis *CRA = AC->getCFGReachablityAnalysis();
   
   // Test for reachability from any aborted blocks to this block
   typedef CoreEngine::BlocksAborted::const_iterator AbortedIterator;
@@ -556,10 +556,10 @@ IdempotentOperationChecker::pathWasCompletelyAnalyzed(AnalysisContext *AC,
   class VisitWL : public WorkList::Visitor {
     const CFGStmtMap *CBM;
     const CFGBlock *TargetBlock;
-    CFGReachabilityAnalysis &CRA;
+    CFGReverseBlockReachabilityAnalysis &CRA;
   public:
     VisitWL(const CFGStmtMap *cbm, const CFGBlock *targetBlock,
-            CFGReachabilityAnalysis &cra)
+            CFGReverseBlockReachabilityAnalysis &cra)
       : CBM(cbm), TargetBlock(targetBlock), CRA(cra) {}
     virtual bool visit(const WorkListUnit &U) {
       ProgramPoint P = U.getNode()->getLocation();