[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