diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/JumpThreading.cpp | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp index 46d40ef5d15..7a7f407b96b 100644 --- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp +++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp @@ -223,10 +223,11 @@ static void RemovePredecessorAndSimplify(BasicBlock *BB, BasicBlock *Pred,        U = PNV;        // See if we can simplify it. -      if (Value *V = SimplifyInstruction(User, TD)) { -        User->replaceAllUsesWith(V); -        User->eraseFromParent(); -      } +      if (User != PN) +        if (Value *V = SimplifyInstruction(User, TD)) { +          User->replaceAllUsesWith(V); +          User->eraseFromParent(); +        }      }      PN->replaceAllUsesWith(PNV); | 

