diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index dedaa6a657c..a1b917ff3e9 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -812,7 +812,7 @@ bool llvm::SimplifyCFG(BasicBlock *BB) { for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI!=E; ++PI) if (BranchInst *PBI = dyn_cast((*PI)->getTerminator())) - if (PBI->isConditional()) { + if (PBI->isConditional() && SafeToMergeTerminators(BI, PBI)) { if (PBI->getSuccessor(0) == FalseDest || PBI->getSuccessor(1) == TrueDest) { // Invert the predecessors condition test (xor it with true),