[llvm-commits] [llvm] r62096 - in /llvm/trunk: include/llvm/CodeGen/DwarfWriter.h lib/CodeGen/AsmPrinter/DwarfWriter.cpp

Devang Patel dpatel at apple.com
Mon Jan 12 11:17:34 PST 2009


Author: dpatel
Date: Mon Jan 12 13:17:34 2009
New Revision: 62096

URL: http://llvm.org/viewvc/llvm-project?rev=62096&view=rev
Log:
Add DwarfWriter interface to mainipulate source location info.
( May be this info should be directly handled by the dwarf writer ? )

Modified:
    llvm/trunk/include/llvm/CodeGen/DwarfWriter.h
    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp

Modified: llvm/trunk/include/llvm/CodeGen/DwarfWriter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/DwarfWriter.h?rev=62096&r1=62095&r2=62096&view=diff

==============================================================================
--- llvm/trunk/include/llvm/CodeGen/DwarfWriter.h (original)
+++ llvm/trunk/include/llvm/CodeGen/DwarfWriter.h Mon Jan 12 13:17:34 2009
@@ -30,6 +30,7 @@
 class MachineModuleInfo;
 class MachineFunction;
 class Module;
+class GlobalVariable;
 class TargetAsmInfo;
 class raw_ostream;
 
@@ -73,6 +74,25 @@
   /// EndFunction - Gather and emit post-function debug information.
   ///
   void EndFunction(MachineFunction *MF);
+
+
+  /// label. Returns a unique label ID used to generate a label and provide
+  /// correspondence to the source line list.
+  unsigned RecordSourceLine(unsigned Line, unsigned Col, unsigned Src);
+
+  /// RecordSource - Register a source file with debug info. Returns an source
+  /// ID.
+  unsigned RecordSource(const std::string &Dir, const std::string &File);
+
+  /// RecordRegionStart - Indicate the start of a region.
+  unsigned RecordRegionStart(GlobalVariable *V);
+
+  /// RecordRegionEnd - Indicate the end of a region.
+  unsigned RecordRegionEnd(GlobalVariable *V);
+
+  /// getRecordSourceLineCount - Count source lines.
+  unsigned getRecordSourceLineCount();
+
 };
 
 

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp?rev=62096&r1=62095&r2=62096&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp Mon Jan 12 13:17:34 2009
@@ -2538,51 +2538,6 @@
     return VariableDie;
   }
 
-  unsigned RecordSourceLine(Value *V, unsigned Line, unsigned Col) {
-    CompileUnit *Unit = DW_CUs[V];
-    assert (Unit && "Unable to find CompileUnit");
-    unsigned ID = MMI->NextLabelID();
-    Lines.push_back(SrcLineInfo(Line, Col, Unit->getID(), ID));
-    return ID;
-  }
-  
-  unsigned getRecordSourceLineCount() {
-    return Lines.size();
-  }
-                            
-  unsigned RecordSource(const std::string &Directory,
-                        const std::string &File) {
-    unsigned DID = Directories.insert(Directory);
-    return SrcFiles.insert(SrcFileInfo(DID,File));
-  }
-
-  /// RecordRegionStart - Indicate the start of a region.
-  ///
-  unsigned RecordRegionStart(GlobalVariable *V) {
-    DbgScope *Scope = getOrCreateScope(V);
-    unsigned ID = MMI->NextLabelID();
-    if (!Scope->getStartLabelID()) Scope->setStartLabelID(ID);
-    return ID;
-  }
-
-  /// RecordRegionEnd - Indicate the end of a region.
-  ///
-  unsigned RecordRegionEnd(GlobalVariable *V) {
-    DbgScope *Scope = getOrCreateScope(V);
-    unsigned ID = MMI->NextLabelID();
-    Scope->setEndLabelID(ID);
-    return ID;
-  }
-
-  /// RecordVariable - Indicate the declaration of  a local variable.
-  ///
-  void RecordVariable(GlobalVariable *GV, unsigned FrameIndex) {
-    DbgScope *Scope = getOrCreateScope(GV);
-    DIVariable *VD = new DIVariable(GV);
-    DbgVariable *DV = new DbgVariable(VD, FrameIndex);
-    Scope->AddVariable(DV);
-  }
-
   /// getOrCreateScope - Returns the scope associated with the given descriptor.
   ///
   DbgScope *getOrCreateScope(GlobalVariable *V) {
@@ -3833,6 +3788,67 @@
     }
     Lines.clear();
   }
+
+public:
+
+  /// RecordSourceLine - Records location information and associates it with a 
+  /// label. Returns a unique label ID used to generate a label and provide
+  /// correspondence to the source line list.
+  unsigned RecordSourceLine(Value *V, unsigned Line, unsigned Col) {
+    CompileUnit *Unit = DW_CUs[V];
+    assert (Unit && "Unable to find CompileUnit");
+    unsigned ID = MMI->NextLabelID();
+    Lines.push_back(SrcLineInfo(Line, Col, Unit->getID(), ID));
+    return ID;
+  }
+  
+  /// RecordSourceLine - Records location information and associates it with a 
+  /// label. Returns a unique label ID used to generate a label and provide
+  /// correspondence to the source line list.
+  unsigned RecordSourceLine(unsigned Line, unsigned Col, unsigned Src) {
+    unsigned ID = MMI->NextLabelID();
+    Lines.push_back(SrcLineInfo(Line, Col, Src, ID));
+    return ID;
+  }
+
+  unsigned getRecordSourceLineCount() {
+    return Lines.size();
+  }
+                            
+  /// RecordSource - Register a source file with debug info. Returns an source
+  /// ID.
+  unsigned RecordSource(const std::string &Directory,
+                        const std::string &File) {
+    unsigned DID = Directories.insert(Directory);
+    return SrcFiles.insert(SrcFileInfo(DID,File));
+  }
+
+  /// RecordRegionStart - Indicate the start of a region.
+  ///
+  unsigned RecordRegionStart(GlobalVariable *V) {
+    DbgScope *Scope = getOrCreateScope(V);
+    unsigned ID = MMI->NextLabelID();
+    if (!Scope->getStartLabelID()) Scope->setStartLabelID(ID);
+    return ID;
+  }
+
+  /// RecordRegionEnd - Indicate the end of a region.
+  ///
+  unsigned RecordRegionEnd(GlobalVariable *V) {
+    DbgScope *Scope = getOrCreateScope(V);
+    unsigned ID = MMI->NextLabelID();
+    Scope->setEndLabelID(ID);
+    return ID;
+  }
+
+  /// RecordVariable - Indicate the declaration of  a local variable.
+  ///
+  void RecordVariable(GlobalVariable *GV, unsigned FrameIndex) {
+    DbgScope *Scope = getOrCreateScope(GV);
+    DIVariable *VD = new DIVariable(GV);
+    DbgVariable *DV = new DbgVariable(VD, FrameIndex);
+    Scope->AddVariable(DV);
+  }
 };
 
 //===----------------------------------------------------------------------===//
@@ -4927,3 +4943,33 @@
     // Clear function debug information.
     MMI->EndFunction();
 }
+
+/// RecordSourceLine - Records location information and associates it with a 
+/// label. Returns a unique label ID used to generate a label and provide
+/// correspondence to the source line list.
+unsigned DwarfWriter::RecordSourceLine(unsigned Line, unsigned Col, 
+                                       unsigned Src) {
+  return DD->RecordSourceLine(Line, Col, Src);
+}
+
+/// RecordSource - Register a source file with debug info. Returns an source
+/// ID.
+unsigned DwarfWriter::RecordSource(const std::string &Dir, 
+                                   const std::string &File) {
+  return DD->RecordSource(Dir, File);
+}
+
+/// RecordRegionStart - Indicate the start of a region.
+unsigned DwarfWriter::RecordRegionStart(GlobalVariable *V) {
+  return DD->RecordRegionStart(V);
+}
+
+/// RecordRegionEnd - Indicate the end of a region.
+unsigned DwarfWriter::RecordRegionEnd(GlobalVariable *V) {
+  return DD->RecordRegionEnd(V);
+}
+
+/// getRecordSourceLineCount - Count source lines.
+unsigned DwarfWriter::getRecordSourceLineCount() {
+  return DD->getRecordSourceLineCount();
+}





More information about the llvm-commits mailing list