From 26d14294de179ada3ba472d206bd25e9785f05a3 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Thu, 1 Jul 2010 19:49:20 +0000 Subject: 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 --- include/llvm/LinkAllPasses.h | 1 + include/llvm/Transforms/IPO.h | 5 +++++ 2 files changed, 6 insertions(+) (limited to 'include/llvm') 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 @@ -44,6 +44,11 @@ ModulePass *createStripNonDebugSymbolsPass(); // These pass removes llvm.dbg.declare intrinsics. 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++ -- cgit v1.2.3