From: Eric Christopher Date: Fri, 22 Feb 2013 23:50:04 +0000 (+0000) Subject: Add a field to the compile unit of where we plan on splitting out X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0dab36478acb6a6ea063b304e44d66e2231505ef;p=platform%2Fupstream%2Fllvm.git Add a field to the compile unit of where we plan on splitting out the debug info for -gsplit-dwarf so we can encode that location in the skeleton cu. llvm-svn: 175933 --- diff --git a/llvm/include/llvm/DIBuilder.h b/llvm/include/llvm/DIBuilder.h index 3de75ff..5efbb9e 100644 --- a/llvm/include/llvm/DIBuilder.h +++ b/llvm/include/llvm/DIBuilder.h @@ -91,9 +91,12 @@ namespace llvm { /// by a tool analyzing generated debugging information. /// @param RV This indicates runtime version for languages like /// Objective-C. + /// @param SplitName The name of the file that we'll split debug info out + /// into. void createCompileUnit(unsigned Lang, StringRef File, StringRef Dir, - StringRef Producer, - bool isOptimized, StringRef Flags, unsigned RV); + StringRef Producer, bool isOptimized, + StringRef Flags, unsigned RV, + StringRef SplitName = StringRef()); /// createFile - Create a file descriptor to hold debugging information /// for a file. diff --git a/llvm/include/llvm/DebugInfo.h b/llvm/include/llvm/DebugInfo.h index a281f22..c557a7a 100644 --- a/llvm/include/llvm/DebugInfo.h +++ b/llvm/include/llvm/DebugInfo.h @@ -203,6 +203,8 @@ namespace llvm { DIArray getSubprograms() const; DIArray getGlobalVariables() const; + StringRef getSplitDebugFilename() const { return getStringField(14); } + /// Verify - Verify that a compile unit is well formed. bool Verify() const; }; diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp index 3b69119..bab30e4 100644 --- a/llvm/lib/IR/DIBuilder.cpp +++ b/llvm/lib/IR/DIBuilder.cpp @@ -76,7 +76,7 @@ static MDNode *getNonCompileUnitScope(MDNode *N) { void DIBuilder::createCompileUnit(unsigned Lang, StringRef Filename, StringRef Directory, StringRef Producer, bool isOptimized, StringRef Flags, - unsigned RunTimeVer) { + unsigned RunTimeVer, StringRef SplitName) { assert(((Lang <= dwarf::DW_LANG_Python && Lang >= dwarf::DW_LANG_C89) || (Lang <= dwarf::DW_LANG_hi_user && Lang >= dwarf::DW_LANG_lo_user)) && "Invalid Language tag"); @@ -106,7 +106,8 @@ void DIBuilder::createCompileUnit(unsigned Lang, StringRef Filename, TempEnumTypes, TempRetainTypes, TempSubprograms, - TempGVs + TempGVs, + MDString::get(VMContext, SplitName) }; TheCU = DICompileUnit(MDNode::get(VMContext, Elts));