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 | 9adb01cbc3ef70e7fa8b4d6b1a1229c63082a496 (patch) | |
tree | e6728a1b3ef9187655be44eeb853cd3591fd1443 | |
parent | 4945c657848523410a449280c6b88ee1f507511f (diff) |
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)) |