From fd4d8975cf0e7c288b4985b1751113154c7defcc Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 18 Aug 2003 22:10:57 +0000 Subject: [PATCH] Add new methods, update comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7962 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/Dominators.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/llvm/Analysis/Dominators.h b/include/llvm/Analysis/Dominators.h index 76f9111b8dd..a6df5560515 100644 --- a/include/llvm/Analysis/Dominators.h +++ b/include/llvm/Analysis/Dominators.h @@ -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 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 {