Remove broken assertion.
authorChris Lattner <sabre@nondot.org>
Mon, 29 Apr 2002 16:20:25 +0000 (16:20 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 29 Apr 2002 16:20:25 +0000 (16:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2396 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/GCSE.cpp

index cb24a0cbfc0815a97b12f5aaf886ad13656058e3..2676609141dfc4f75bd45dd2248d2fe4278dcce0 100644 (file)
@@ -105,6 +105,8 @@ bool GCSE::runOnFunction(Function *F) {
 //
 void GCSE::ReplaceInstWithInst(Instruction *First, BasicBlock::iterator SI) {
   Instruction *Second = *SI;
+  
+  //cerr << "DEL " << (void*)Second << Second;
 
   // Add the first instruction back to the worklist
   WorkList.insert(First);
@@ -127,9 +129,9 @@ void GCSE::ReplaceInstWithInst(Instruction *First, BasicBlock::iterator SI) {
 //
 void GCSE::CommonSubExpressionFound(Instruction *I, Instruction *Other) {
   // I has already been removed from the worklist, Other needs to be.
-  assert(WorkList.count(I) == 0 && WorkList.count(Other) &&
-         "I in worklist or Other not!");
-  WorkList.erase(Other);
+  assert(I != Other && WorkList.count(I) == 0 && "I shouldn't be on worklist!");
+
+  WorkList.erase(Other); // Other may not actually be on the worklist anymore...
 
   // Handle the easy case, where both instructions are in the same basic block
   BasicBlock *BB1 = I->getParent(), *BB2 = Other->getParent();