Add new methods, update comments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7962 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2003-08-18 22:10:57 +00:00
parent 134480cb1b
commit fd4d8975cf

View 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: // This file defines the following classes:
// 1. DominatorSet: Calculates the [reverse] dominator set for a function // 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 // 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 { class DominatorSetBase : public DominatorBase {
public: public:
@@ -80,6 +82,12 @@ public:
return I->second; 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. /// dominates - Return true if A dominates B.
/// ///
inline bool dominates(BasicBlock *A, BasicBlock *B) const { inline bool dominates(BasicBlock *A, BasicBlock *B) const {