diff options
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfDebug.h')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.h | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h index e7733eb74c..6c8a28d683 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -289,7 +289,6 @@ class DwarfDebug : public Dwarf { void addSourceLine(DIE *Die, const DIGlobal *G); void addSourceLine(DIE *Die, const DISubprogram *SP); void addSourceLine(DIE *Die, const DIType *Ty); - void addSourceLine(DIE *Die, const DINameSpace *NS); /// addAddress - Add an address attribute to a die based on the location /// provided. @@ -315,58 +314,60 @@ class DwarfDebug : public Dwarf { const MachineLocation &Location); /// addType - Add a new type attribute to the specified entity. - void addType(DIE *Entity, DIType Ty); + void addType(CompileUnit *DW_Unit, DIE *Entity, DIType Ty); void addPubTypes(DISubprogram SP); /// constructTypeDIE - Construct basic type die from DIBasicType. - void constructTypeDIE(DIE &Buffer, + void constructTypeDIE(CompileUnit *DW_Unit, DIE &Buffer, DIBasicType BTy); /// constructTypeDIE - Construct derived type die from DIDerivedType. - void constructTypeDIE(DIE &Buffer, + void constructTypeDIE(CompileUnit *DW_Unit, DIE &Buffer, DIDerivedType DTy); /// constructTypeDIE - Construct type DIE from DICompositeType. - void constructTypeDIE(DIE &Buffer, + void constructTypeDIE(CompileUnit *DW_Unit, DIE &Buffer, DICompositeType CTy); /// constructSubrangeDIE - Construct subrange DIE from DISubrange. void constructSubrangeDIE(DIE &Buffer, DISubrange SR, DIE *IndexTy); /// constructArrayTypeDIE - Construct array type DIE from DICompositeType. - void constructArrayTypeDIE(DIE &Buffer, + void constructArrayTypeDIE(CompileUnit *DW_Unit, DIE &Buffer, DICompositeType *CTy); /// constructEnumTypeDIE - Construct enum type DIE from DIEnumerator. - DIE *constructEnumTypeDIE(DIEnumerator *ETy); - - /// getOrCreateNameSpace - Create a DIE for DINameSpace. - DIE *getOrCreateNameSpace(DINameSpace &NS); + DIE *constructEnumTypeDIE(CompileUnit *DW_Unit, DIEnumerator *ETy); /// createGlobalVariableDIE - Create new DIE using GV. - DIE *createGlobalVariableDIE(const DIGlobalVariable &GV); + DIE *createGlobalVariableDIE(CompileUnit *DW_Unit, + const DIGlobalVariable &GV); /// createMemberDIE - Create new member DIE. - DIE *createMemberDIE(const DIDerivedType &DT); + DIE *createMemberDIE(CompileUnit *DW_Unit, const DIDerivedType &DT); /// createSubprogramDIE - Create new DIE using SP. - DIE *createSubprogramDIE(const DISubprogram &SP); + DIE *createSubprogramDIE(CompileUnit *DW_Unit, const DISubprogram &SP); /// createMemberSubprogramDIE - Create new member DIE using SP. This /// routine always returns a die with DW_AT_declaration attribute. - DIE *createMemberSubprogramDIE(const DISubprogram &SP); + DIE *createMemberSubprogramDIE(CompileUnit *DW_Unit, const DISubprogram &SP); /// createRawSubprogramDIE - Create new partially incomplete DIE. This is /// a helper routine used by createMemberSubprogramDIE and /// createSubprogramDIE. - DIE *createRawSubprogramDIE(const DISubprogram &SP); + DIE *createRawSubprogramDIE(CompileUnit *DW_Unit, const DISubprogram &SP); /// findCompileUnit - Get the compile unit for the given descriptor. /// CompileUnit &findCompileUnit(DICompileUnit Unit) const; + /// createDbgScopeVariable - Create a new scope variable. + /// + DIE *createDbgScopeVariable(DbgVariable *DV, CompileUnit *Unit); + /// getUpdatedDbgScope - Find or create DbgScope assicated with /// the instruction. Initialize scope and update scope hierarchy. DbgScope *getUpdatedDbgScope(MDNode *N, const MachineInstr *MI, MDNode *InlinedAt); @@ -396,7 +397,7 @@ class DwarfDebug : public Dwarf { DIE *constructInlinedScopeDIE(DbgScope *Scope); /// constructVariableDIE - Construct a DIE for the given DbgVariable. - DIE *constructVariableDIE(DbgVariable *DV, DbgScope *S); + DIE *constructVariableDIE(DbgVariable *DV, DbgScope *S, CompileUnit *Unit); /// constructScopeDIE - Construct a DIE for this scope. DIE *constructScopeDIE(DbgScope *Scope); @@ -417,8 +418,10 @@ class DwarfDebug : public Dwarf { /// void computeSizeAndOffsets(); - /// EmitDebugInfo - Emit the debug info section. + /// EmitDebugInfo / emitDebugInfoPerCU - Emit the debug info section. /// + void emitDebugInfoPerCU(CompileUnit *Unit); + void emitDebugInfo(); /// emitAbbreviations - Emit the abbreviation section. @@ -442,6 +445,8 @@ class DwarfDebug : public Dwarf { /// section. void emitFunctionDebugFrame(const FunctionDebugFrameInfo &DebugFrameInfo); + void emitDebugPubNamesPerCU(CompileUnit *Unit); + /// emitDebugPubNames - Emit visible names into a debug pubnames section. /// void emitDebugPubNames(); |