Add new methods, update comments
authorChris Lattner <sabre@nondot.org>
Mon, 18 Aug 2003 22:10:57 +0000 (22:10 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 18 Aug 2003 22:10:57 +0000 (22:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7962 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/Dominators.h

index 76f9111b8ddce0b4ce98179ac0944a60e5b72cdc..a6df5560515ecf9eb8643cdf8b91cb049d52ea61 100644 (file)
@@ -1,4 +1,4 @@
-//===- llvm/Analysis/Dominators.h - Dominator Info Calculation ---*- C++ -*--=//
+//===- llvm/Analysis/Dominators.h - Dominator Info Calculation --*- C++ -*-===//
 //
 // This file defines the following classes:
 //  1. DominatorSet: Calculates the [reverse] dominator set for a function
@@ -46,7 +46,9 @@ public:
 //===----------------------------------------------------------------------===//
 //
 // DominatorSet - Maintain a set<BasicBlock*> for every basic block in a
-// function, that represents the blocks that dominate the block.
+// function, that represents the blocks that dominate the block.  If the block
+// is unreachable in this function, the set will be empty.  This cannot happen
+// for reachable code, because every block dominates at least itself.
 //
 class DominatorSetBase : public DominatorBase {
 public:
@@ -80,6 +82,12 @@ public:
     return I->second;
   }
 
+  /// isReachable - Return true if the specified basicblock is reachable.  If
+  /// the block is reachable, we have dominator set information for it.
+  bool isReachable(BasicBlock *BB) const {
+    return !getDominators(BB).empty();
+  }
+
   /// dominates - Return true if A dominates B.
   ///
   inline bool dominates(BasicBlock *A, BasicBlock *B) const {