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 | b833ce74d8c98ba15b51fd9f4b5017042a50d9cb (patch) | |
tree | 71fa54b63c97eb42bb72295d9ccfb22561221300 /llvm/lib/Transforms | |
parent | 77456b7ab47d13cdcbf169f5d068debfc34ae66f (diff) | |
download | llvm-b833ce74d8c98ba15b51fd9f4b5017042a50d9cb.zip llvm-b833ce74d8c98ba15b51fd9f4b5017042a50d9cb.tar.gz llvm-b833ce74d8c98ba15b51fd9f4b5017042a50d9cb.tar.bz2 |
Recursively remove dead argument while removing llvm.dbg.declare intrinsic.
llvm-svn: 65971
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/IPO/StripSymbols.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/StripSymbols.cpp b/llvm/lib/Transforms/IPO/StripSymbols.cpp index 3906b51..fbb2075 100644 --- a/llvm/lib/Transforms/IPO/StripSymbols.cpp +++ b/llvm/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)) |