[llvm-commits] [llvm] r61822 - /llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
Devang Patel
dpatel at apple.com
Tue Jan 6 13:07:31 PST 2009
Author: dpatel
Date: Tue Jan 6 15:07:30 2009
New Revision: 61822
URL: http://llvm.org/viewvc/llvm-project?rev=61822&view=rev
Log:
Set up DwarfDebug using DebugInfo API.
Modified:
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp?rev=61822&r1=61821&r2=61822&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp Tue Jan 6 15:07:30 2009
@@ -3291,6 +3291,39 @@
delete Values[j];
}
+ /// SetDebugInfo - Create global DIEs and emit initial debug info sections.
+ /// This is inovked by the target AsmPrinter.
+ void SetDebugInfo() {
+ // FIXME - Check if the module has debug info or not.
+ // Create all the compile unit DIEs.
+ ConstructCompileUnits();
+
+ // Create DIEs for each of the externally visible global variables.
+ ConstructGlobalVariableDIEs();
+
+ // Create DIEs for each of the externally visible subprograms.
+ ConstructSubprograms();
+
+ // Prime section data.
+ SectionMap.insert(TAI->getTextSection());
+
+ // Print out .file directives to specify files for .loc directives. These
+ // are printed out early so that they precede any .loc directives.
+ if (TAI->hasDotLocAndDotFile()) {
+ for (unsigned i = 1, e = SrcFiles.size(); i <= e; ++i) {
+ sys::Path FullPath(Directories[SrcFiles[i].getDirectoryID()]);
+ bool AppendOk = FullPath.appendComponent(SrcFiles[i].getName());
+ assert(AppendOk && "Could not append filename to directory!");
+ AppendOk = false;
+ Asm->EmitFile(i, FullPath.toString());
+ Asm->EOL();
+ }
+ }
+
+ // Emit initial sections
+ EmitInitial();
+ }
+
/// SetModuleInfo - Set machine module information when it's known that pass
/// manager has created it. Set by the target AsmPrinter.
void SetModuleInfo(MachineModuleInfo *mmi) {
More information about the llvm-commits
mailing list