aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Instructions.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h
index 03ce2467a5..5973addf6a 100644
--- a/include/llvm/Instructions.h
+++ b/include/llvm/Instructions.h
@@ -1310,6 +1310,19 @@ public:
return 0;
}
+ /// findCaseDest - Finds the unique case value for a given successor. Returns
+ /// null if the successor is not found, not unique, or is the default case.
+ ConstantInt *findCaseDest(BasicBlock *BB) {
+ ConstantInt *CI = NULL;
+ for (unsigned i = 1, e = getNumCases(); i != e; ++i) {
+ if (getSuccessor(i) == BB) {
+ if (CI) return NULL; // Multiple cases lead to BB.
+ else CI = getCaseValue(i);
+ }
+ }
+ return CI;
+ }
+
/// addCase - Add an entry to the switch instruction...
///
void addCase(ConstantInt *OnVal, BasicBlock *Dest);