From 1a0df9a80ea82b94178a3500fbf52649df40c86e Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Mon, 10 May 2010 22:49:55 +0000 Subject: Enable multiple Compile Units in one module. This means now 'llvm-ld a.bc b.bc' will preserve debug info appropriately. llvm-svn: 103439 --- llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h') diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h index f3d64070f97..56282a38148 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -82,8 +82,8 @@ class DwarfDebug { // Attributes used to construct specific Dwarf sections. // - /// ModuleCU - All DIEs are inserted in ModuleCU. - CompileUnit *ModuleCU; + CompileUnit *FirstCU; + DenseMap CUMap; /// AbbreviationsSet - Used to uniquely define abbreviations. /// @@ -506,10 +506,17 @@ private: /// maps as well. unsigned GetOrCreateSourceID(StringRef DirName, StringRef FileName); + /// constructCompileUnit - Create new CompileUnit for the given + /// metadata node with tag DW_TAG_compile_unit. void constructCompileUnit(const MDNode *N); + /// getCompielUnit - Get CompileUnit DIE. + CompileUnit *getCompileUnit(const MDNode *N) const; + + /// constructGlobalVariableDIE - Construct global variable DIE. void constructGlobalVariableDIE(const MDNode *N); + /// construct SubprogramDIE - Construct subprogram DIE. void constructSubprogramDIE(const MDNode *N); // FIXME: This should go away in favor of complex addresses. -- cgit v1.2.3