Explicitly check for StoreInst, do not lose the chance to delete
authorZhou Sheng <zhousheng00@gmail.com>
Wed, 18 Mar 2009 12:48:48 +0000 (12:48 +0000)
committerZhou Sheng <zhousheng00@gmail.com>
Wed, 18 Mar 2009 12:48:48 +0000 (12:48 +0000)
unused loads or bitcasts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67202 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/ScalarReplAggregates.cpp

index 358b0981cc8eac29b5caf86b020e6f215061b494..9cbe073e292c68e7ac8b6bed2b1dbb4014f609ca 100644 (file)
@@ -1223,7 +1223,7 @@ void SROA::CleanupAllocaUsers(AllocationInst *AI) {
       CleanupGEP(GEPI);
     else if (Instruction *I = dyn_cast<Instruction>(U)) {
       SmallVector<DbgInfoIntrinsic *, 2> DbgInUses;
-      if (!I->use_empty() && OnlyUsedByDbgInfoIntrinsics(I, &DbgInUses)) {
+      if (!isa<StoreInst>(I) && OnlyUsedByDbgInfoIntrinsics(I, &DbgInUses)) {
         // Safe to remove debug info uses.
         while (!DbgInUses.empty()) {
           DbgInfoIntrinsic *DI = DbgInUses.back(); DbgInUses.pop_back();