[llvm-commits] CVS: llvm/lib/CodeGen/MachineDebugInfo.cpp
Jim Laskey
jlaskey at apple.com
Tue Mar 7 12:54:00 PST 2006
Changes in directory llvm/lib/CodeGen:
MachineDebugInfo.cpp updated: 1.23 -> 1.24
---
Log message:
Switch to using a numeric id for anchors.
---
Diffs of the changes: (+28 -12)
MachineDebugInfo.cpp | 40 ++++++++++++++++++++++++++++------------
1 files changed, 28 insertions(+), 12 deletions(-)
Index: llvm/lib/CodeGen/MachineDebugInfo.cpp
diff -u llvm/lib/CodeGen/MachineDebugInfo.cpp:1.23 llvm/lib/CodeGen/MachineDebugInfo.cpp:1.24
--- llvm/lib/CodeGen/MachineDebugInfo.cpp:1.23 Fri Mar 3 09:06:57 2006
+++ llvm/lib/CodeGen/MachineDebugInfo.cpp Tue Mar 7 14:53:47 2006
@@ -53,7 +53,7 @@
std::vector<const Type*> FieldTypes;
FieldTypes.push_back(Type::UIntTy);
- FieldTypes.push_back(PointerType::get(Type::SByteTy));
+ FieldTypes.push_back(Type::UIntTy);
// Get the GlobalVariable root.
GlobalVariable *UseRoot = M.getGlobalVariable(RootName,
@@ -539,11 +539,11 @@
AnchorDesc::AnchorDesc()
: DebugInfoDesc(DW_TAG_anchor)
-, Name("")
+, AnchorTag(0)
{}
-AnchorDesc::AnchorDesc(const std::string &N)
+AnchorDesc::AnchorDesc(AnchoredDesc *D)
: DebugInfoDesc(DW_TAG_anchor)
-, Name(N)
+, AnchorTag(D->getTag())
{}
// Implement isa/cast/dyncast.
@@ -562,13 +562,26 @@
void AnchorDesc::ApplyToFields(DIVisitor *Visitor) {
DebugInfoDesc::ApplyToFields(Visitor);
- Visitor->Apply(Name);
+ Visitor->Apply(AnchorTag);
}
-/// getDescString - Return a string used to compose global names and labels.
-///
+/// getDescString - Return a string used to compose global names and labels. A
+/// A global variable name needs to be defined for each debug descriptor that is
+/// anchored. NOTE: that each global variable name here also needs to be added
+/// to the list of names left external in the internalizer.
+/// ExternalNames.insert("llvm.dbg.compile_units");
+/// ExternalNames.insert("llvm.dbg.global_variables");
+/// ExternalNames.insert("llvm.dbg.subprograms");
const char *AnchorDesc::getDescString() const {
- return Name.c_str();
+ switch (AnchorTag) {
+ case DW_TAG_compile_unit: return CompileUnitDesc::AnchorString;
+ case DW_TAG_variable: return GlobalVariableDesc::AnchorString;
+ case DW_TAG_subprogram: return SubprogramDesc::AnchorString;
+ default: break;
+ }
+
+ assert(0 && "Tag does not have a case for anchor string");
+ return "";
}
/// getTypeString - Return a string used to label this descriptors type.
@@ -581,7 +594,7 @@
void AnchorDesc::dump() {
std::cerr << getDescString() << " "
<< "Tag(" << getTag() << "), "
- << "Name(" << Name << ")\n";
+ << "AnchorTag(" << AnchorTag << ")\n";
}
#endif
@@ -649,8 +662,9 @@
/// getAnchorString - Return a string used to label this descriptor's anchor.
///
+const char *CompileUnitDesc::AnchorString = "llvm.dbg.compile_units";
const char *CompileUnitDesc::getAnchorString() const {
- return "llvm.dbg.compile_units";
+ return AnchorString;
}
#ifndef NDEBUG
@@ -1014,8 +1028,9 @@
/// getAnchorString - Return a string used to label this descriptor's anchor.
///
+const char *GlobalVariableDesc::AnchorString = "llvm.dbg.global_variables";
const char *GlobalVariableDesc::getAnchorString() const {
- return "llvm.dbg.global_variables";
+ return AnchorString;
}
#ifndef NDEBUG
@@ -1063,8 +1078,9 @@
/// getAnchorString - Return a string used to label this descriptor's anchor.
///
+const char *SubprogramDesc::AnchorString = "llvm.dbg.subprograms";
const char *SubprogramDesc::getAnchorString() const {
- return "llvm.dbg.subprograms";
+ return AnchorString;
}
#ifndef NDEBUG
More information about the llvm-commits
mailing list