From: Kyungwoo Lee Date: Thu, 19 Aug 2021 00:14:46 +0000 (-0700) Subject: [NFC][DebugInfo] getDwarfCompileUnitID X-Git-Tag: upstream/15.0.7~33557 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=829616c24119f000132913616a7cd4ad930ca84a;p=platform%2Fupstream%2Fllvm.git [NFC][DebugInfo] getDwarfCompileUnitID This is a refactoring for the use in https://reviews.llvm.org/D108261 Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D108271 --- diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 52591a1..e6c97b5 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -2147,18 +2147,24 @@ void DwarfDebug::beginFunctionImpl(const MachineFunction *MF) { DwarfCompileUnit &CU = getOrCreateDwarfCompileUnit(SP->getUnit()); + Asm->OutStreamer->getContext().setDwarfCompileUnitID( + getDwarfCompileUnitIDForLineTable(CU)); + + // Record beginning of function. + PrologEndLoc = emitInitialLocDirective( + *MF, Asm->OutStreamer->getContext().getDwarfCompileUnitID()); +} + +unsigned +DwarfDebug::getDwarfCompileUnitIDForLineTable(const DwarfCompileUnit &CU) { // Set DwarfDwarfCompileUnitID in MCContext to the Compile Unit this function // belongs to so that we add to the correct per-cu line table in the // non-asm case. if (Asm->OutStreamer->hasRawTextSupport()) // Use a single line table if we are generating assembly. - Asm->OutStreamer->getContext().setDwarfCompileUnitID(0); + return 0; else - Asm->OutStreamer->getContext().setDwarfCompileUnitID(CU.getUniqueID()); - - // Record beginning of function. - PrologEndLoc = emitInitialLocDirective( - *MF, Asm->OutStreamer->getContext().getDwarfCompileUnitID()); + return CU.getUniqueID(); } void DwarfDebug::skippedNonDebugFunction() { diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h index b55be79..6de0956 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -612,7 +612,7 @@ private: DenseSet &ProcessedVars); /// Build the location list for all DBG_VALUEs in the - /// function that describe the same variable. If the resulting + /// function that describe the same variable. If the resulting /// list has only one entry that is valid for entire variable's /// scope return true. bool buildLocationList(SmallVectorImpl &DebugLoc, @@ -632,6 +632,9 @@ protected: /// Gather and emit post-function debug information. void endFunctionImpl(const MachineFunction *MF) override; + /// Get Dwarf compile unit ID for line table. + unsigned getDwarfCompileUnitIDForLineTable(const DwarfCompileUnit &CU); + void skippedNonDebugFunction() override; public: