diff options
author | Owen Anderson <resistor@mac.com> | 2010-09-02 22:16:52 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2010-09-02 22:16:52 +0000 |
commit | 2912df072d891383c7c007f8fcff9ad8a2520440 (patch) | |
tree | b133e5a62c0bab81b4a97e6d293b858de6d8900b | |
parent | 56291f7e53a22d281f72441e5025881ddafd704f (diff) | |
download | bcm5719-llvm-2912df072d891383c7c007f8fcff9ad8a2520440.tar.gz bcm5719-llvm-2912df072d891383c7c007f8fcff9ad8a2520440.zip |
Remove incorrect and poorly tested code for trying to reason about values on default edges of
switches. Just return the conservatively correct answer.
llvm-svn: 112876
-rw-r--r-- | llvm/lib/Analysis/LazyValueInfo.cpp | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/llvm/lib/Analysis/LazyValueInfo.cpp b/llvm/lib/Analysis/LazyValueInfo.cpp index ff98bf97711..b4923f9a717 100644 --- a/llvm/lib/Analysis/LazyValueInfo.cpp +++ b/llvm/lib/Analysis/LazyValueInfo.cpp @@ -670,25 +670,11 @@ LVILatticeVal LVIQuery::getEdgeValue(BasicBlock *BBFrom, BasicBlock *BBTo) { // If the edge was formed by a switch on the value, then we may know exactly // what it is. if (SwitchInst *SI = dyn_cast<SwitchInst>(BBFrom->getTerminator())) { - // If BBTo is the default destination of the switch, we know that it - // doesn't have the same value as any of the cases. if (SI->getCondition() == Val) { + // We don't know anything in the default case. if (SI->getDefaultDest() == BBTo) { - const IntegerType *IT = cast<IntegerType>(Val->getType()); - ConstantRange CR(IT->getBitWidth()); - - for (unsigned i = 1, e = SI->getNumSuccessors(); i != e; ++i) { - const APInt CaseVal = SI->getCaseValue(i)->getValue(); - ConstantRange CaseRange(CaseVal, CaseVal+1); - CaseRange = CaseRange.inverse(); - CR = CR.intersectWith(CaseRange); - } - LVILatticeVal Result; - if (CR.isFullSet() || CR.isEmptySet()) - Result.markOverdefined(); - else - Result.markConstantRange(CR); + Result.markOverdefined(); return Result; } |