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 | bcm5719-llvm-b833ce74d8c98ba15b51fd9f4b5017042a50d9cb.tar.gz bcm5719-llvm-b833ce74d8c98ba15b51fd9f4b5017042a50d9cb.zip | |
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 3906b5111ec..fbb2075cb46 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)) |

