diff options
author | Chris Lattner <sabre@nondot.org> | 2010-04-05 02:19:28 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-04-05 02:19:28 +0000 |
commit | d850ac79b57e6e0bf68ee93a94d0b3dcd9f6ca35 (patch) | |
tree | 0ccd3f0a544d2c4739abca38c082c3e1d0f4894f /lib/CodeGen/AsmPrinter | |
parent | cb8660942179416e6505e202d0436ae0d58228d7 (diff) |
fastisel doesn't need DwarfWriter, remove some tendricles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100381 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 31 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.h | 2 | ||||
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfWriter.cpp | 2 |
3 files changed, 24 insertions, 11 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 539eba0133..3d86bf6fc9 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -1793,24 +1793,39 @@ void DwarfDebug::constructSubprogramDIE(MDNode *N) { void DwarfDebug::beginModule(Module *M) { if (!Asm->MAI->doesSupportDebugInformation()) return; + + MMI = Asm->MMI; TimeRegion Timer(DebugTimer); - + DebugInfoFinder DbgFinder; DbgFinder.processModule(*M); + bool HasDebugInfo = false; + + // Scan all the compile-units to see if there are any marked as the main unit. + // if not, we do not generate debug info. + for (DebugInfoFinder::iterator I = DbgFinder.compile_unit_begin(), + E = DbgFinder.compile_unit_end(); I != E; ++I) { + if (DICompileUnit(*I).isMain()) { + HasDebugInfo = true; + break; + } + } + + if (!HasDebugInfo) return; + + // Tell MMI that we have debug info. + MMI->setDebugInfoAvailability(true); + // Emit initial sections. - if (DbgFinder.compile_unit_begin() != DbgFinder.compile_unit_end()) - EmitSectionLabels(); + EmitSectionLabels(); // Create all the compile unit DIEs. for (DebugInfoFinder::iterator I = DbgFinder.compile_unit_begin(), E = DbgFinder.compile_unit_end(); I != E; ++I) constructCompileUnit(*I); - if (!ModuleCU) - return; - // Create DIEs for each subprogram. for (DebugInfoFinder::iterator I = DbgFinder.subprogram_begin(), E = DbgFinder.subprogram_end(); I != E; ++I) @@ -1821,10 +1836,6 @@ void DwarfDebug::beginModule(Module *M) { E = DbgFinder.global_variable_end(); I != E; ++I) constructGlobalVariableDIE(*I); - MMI = Asm->MMI; - shouldEmit = true; - MMI->setDebugInfoAvailability(true); - // Prime section data. SectionMap.insert(Asm->getObjFileLowering().getTextSection()); diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h index 320691b059..b38e485117 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -60,8 +60,10 @@ public: class DwarfDebug { /// Asm - Target of Dwarf emission. AsmPrinter *Asm; +public: /// MMI - Collected machine module information. MachineModuleInfo *MMI; +private: //===--------------------------------------------------------------------===// // Attributes used to construct specific Dwarf sections. diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp index 1b019cd294..acc0066937 100644 --- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp @@ -72,7 +72,7 @@ void DwarfWriter::EndFunction(const MachineFunction *MF) { /// ShouldEmitDwarfDebug - Returns true if Dwarf debugging declarations should /// be emitted. bool DwarfWriter::ShouldEmitDwarfDebug() const { - return DD && DD->ShouldEmitDwarfDebug(); + return DD && DD->MMI->hasDebugInfo(); } void DwarfWriter::BeginScope(const MachineInstr *MI) { |