diff options
author | Chris Lattner <sabre@nondot.org> | 2007-11-06 22:07:22 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-11-06 22:07:22 +0000 |
commit | 6390ae0a4ad9a5419b7a3c6f899de82c568807e8 (patch) | |
tree | a95b316b777bc58b09ed7d2785ad647d63d3d881 | |
parent | cf5008a792ee6315e14ae76c2b7823213fd88146 (diff) | |
download | external_llvm-6390ae0a4ad9a5419b7a3c6f899de82c568807e8.zip external_llvm-6390ae0a4ad9a5419b7a3c6f899de82c568807e8.tar.gz external_llvm-6390ae0a4ad9a5419b7a3c6f899de82c568807e8.tar.bz2 |
don't put erase or query for non-allocainst pointers in an set of allocainsts*'s
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43779 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Scalar/DeadStoreElimination.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Transforms/Scalar/DeadStoreElimination.cpp b/lib/Transforms/Scalar/DeadStoreElimination.cpp index e5c557c..b19077f 100644 --- a/lib/Transforms/Scalar/DeadStoreElimination.cpp +++ b/lib/Transforms/Scalar/DeadStoreElimination.cpp @@ -271,7 +271,8 @@ bool DSE::handleEndBlock(BasicBlock& BB, // See through pointer-to-pointer bitcasts TranslatePointerBitCasts(pointerOperand); - if (deadPointers.count(pointerOperand)){ + if (isa<AllocaInst>(pointerOperand) && + deadPointers.count(cast<AllocaInst>(pointerOperand))) { // Remove it! MD.removeInstruction(S); @@ -345,7 +346,8 @@ bool DSE::handleEndBlock(BasicBlock& BB, for (std::vector<Instruction*>::iterator I = dead.begin(), E = dead.end(); I != E; ++I) - deadPointers.erase(*I); + if (AllocaInst *AI = dyn_cast<AllocaInst>(*I)) + deadPointers.erase(AI); continue; } @@ -427,7 +429,8 @@ bool DSE::RemoveUndeadPointers(Value* killPointer, for (std::vector<Instruction*>::iterator I = undead.begin(), E = undead.end(); I != E; ++I) - deadPointers.erase(*I); + if (AllocaInst *AI = dyn_cast<AllocaInst>(*I)) + deadPointers.erase(AI); return MadeChange; } |