diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp b/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp index 213b3d742f4..ff68f4e69e3 100644 --- a/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp +++ b/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp @@ -342,6 +342,8 @@ void PromoteMem2Reg::run() { if (PNs[i]) { if (Value *V = hasConstantValue(PNs[i])) { if (!isa<Instruction>(V) || dominates(cast<Instruction>(V), PNs[i])) { + if (AST && isa<PointerType>(PNs[i]->getType())) + AST->deleteValue(PNs[i]); PNs[i]->replaceAllUsesWith(V); PNs[i]->eraseFromParent(); PNs[i] = 0; |