diff options
author | Devang Patel <dpatel@apple.com> | 2009-03-03 21:31:02 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-03-03 21:31:02 +0000 |
commit | e68804ac2530de3f032c41955d7cc319f608bb93 (patch) | |
tree | e6728a1b3ef9187655be44eeb853cd3591fd1443 | |
parent | 2c11fe22500fbd0563705e2ffe3810c061139f2a (diff) | |
download | external_llvm-e68804ac2530de3f032c41955d7cc319f608bb93.tar.gz external_llvm-e68804ac2530de3f032c41955d7cc319f608bb93.tar.bz2 external_llvm-e68804ac2530de3f032c41955d7cc319f608bb93.zip |
Recursively remove dead argument while removing llvm.dbg.declare intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65971 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/IPO/StripSymbols.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Transforms/IPO/StripSymbols.cpp b/lib/Transforms/IPO/StripSymbols.cpp index 3906b5111e..fbb2075cb4 100644 --- a/lib/Transforms/IPO/StripSymbols.cpp +++ b/lib/Transforms/IPO/StripSymbols.cpp @@ -28,6 +28,7 @@ #include "llvm/Pass.h" #include "llvm/ValueSymbolTable.h" #include "llvm/TypeSymbolTable.h" +#include "llvm/Transforms/Utils/Local.h" #include "llvm/Support/Compiler.h" #include "llvm/ADT/SmallPtrSet.h" using namespace llvm; @@ -268,8 +269,8 @@ bool StripDebugInfo(Module &M) { if (Arg1->use_empty()) { if (Constant *C = dyn_cast<Constant>(Arg1)) DeadConstants.push_back(C); - if (Instruction *I = dyn_cast<Instruction>(Arg1)) - I->eraseFromParent(); + else + RecursivelyDeleteTriviallyDeadInstructions(Arg1, NULL); } if (Arg2->use_empty()) if (Constant *C = dyn_cast<Constant>(Arg2)) |