summaryrefslogtreecommitdiff
path: root/include/llvm
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-07-01 19:49:20 +0000
committerDevang Patel <dpatel@apple.com>2010-07-01 19:49:20 +0000
commit26d14294de179ada3ba472d206bd25e9785f05a3 (patch)
tree580741c808ae154cbed556753e22e4ae6ad39ca7 /include/llvm
parente62b203570e1a6b071a0ef4c64cb81093026d93a (diff)
downloadllvm-26d14294de179ada3ba472d206bd25e9785f05a3.tar.gz
llvm-26d14294de179ada3ba472d206bd25e9785f05a3.tar.bz2
llvm-26d14294de179ada3ba472d206bd25e9785f05a3.tar.xz
Debugging infomration is encoded in llvm IR using metadata. This is designed
such a way that debug info for symbols preserved even if symbols are optimized away by the optimizer. Add new special pass to remove debug info for such symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107416 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/LinkAllPasses.h1
-rw-r--r--include/llvm/Transforms/IPO.h5
2 files changed, 6 insertions, 0 deletions
diff --git a/include/llvm/LinkAllPasses.h b/include/llvm/LinkAllPasses.h
index c2375eaab1..876703b903 100644
--- a/include/llvm/LinkAllPasses.h
+++ b/include/llvm/LinkAllPasses.h
@@ -113,6 +113,7 @@ namespace {
(void) llvm::createSingleLoopExtractorPass();
(void) llvm::createStripSymbolsPass();
(void) llvm::createStripNonDebugSymbolsPass();
+ (void) llvm::createStripDeadDebugInfoPass();
(void) llvm::createStripDeadPrototypesPass();
(void) llvm::createTailCallEliminationPass();
(void) llvm::createTailDuplicationPass();
diff --git a/include/llvm/Transforms/IPO.h b/include/llvm/Transforms/IPO.h
index 5e17904422..8fb4b63c64 100644
--- a/include/llvm/Transforms/IPO.h
+++ b/include/llvm/Transforms/IPO.h
@@ -45,6 +45,11 @@ ModulePass *createStripNonDebugSymbolsPass();
ModulePass *createStripDebugDeclarePass();
//===----------------------------------------------------------------------===//
+//
+// These pass removes unused symbols' debug info.
+ModulePass *createStripDeadDebugInfoPass();
+
+//===----------------------------------------------------------------------===//
/// createLowerSetJmpPass - This function lowers the setjmp/longjmp intrinsics
/// to invoke/unwind instructions. This should really be part of the C/C++
/// front-end, but it's so much easier to write transformations in LLVM proper.