diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Utils/SimplifyCFG.cpp | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp index 09153ed3bb0..a8785fe0a99 100644 --- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp @@ -691,8 +691,9 @@ bool llvm::SimplifyCFG(BasicBlock *BB) {      }    } else if (SwitchInst *SI = dyn_cast<SwitchInst>(BB->begin())) { -    if (FoldValueComparisonIntoPredecessors(SI)) -      return SimplifyCFG(BB) || 1; +    if (isValueEqualityComparison(SI)) +      if (FoldValueComparisonIntoPredecessors(SI)) +        return SimplifyCFG(BB) || 1;    } else if (BranchInst *BI = dyn_cast<BranchInst>(BB->getTerminator())) {      if (Value *CompVal = isValueEqualityComparison(BB->getTerminator())) {        // This block must be empty, except for the setcond inst, if it exists. | 

