Changes in directory llvm/lib/CodeGen:
MachineDebugInfo.cpp updated: 1.60 -> 1.61 DwarfWriter.cpp updated: 1.104 -> 1.105 --- Log message: Change global descriptor names to provide name, full name and linkage name. --- Diffs of the changes: (+35 -36) DwarfWriter.cpp | 59 +++++++++++++++++++++++---------------------------- MachineDebugInfo.cpp | 12 ++++++---- 2 files changed, 35 insertions(+), 36 deletions(-) Index: llvm/lib/CodeGen/MachineDebugInfo.cpp diff -u llvm/lib/CodeGen/MachineDebugInfo.cpp:1.60 llvm/lib/CodeGen/MachineDebugInfo.cpp:1.61 --- llvm/lib/CodeGen/MachineDebugInfo.cpp:1.60 Sun Nov 26 19:05:09 2006 +++ llvm/lib/CodeGen/MachineDebugInfo.cpp Thu Nov 30 08:35:45 2006 @@ -1048,7 +1048,8 @@ : AnchoredDesc(T) , Context(0) , Name("") -, DisplayName("") +, FullName("") +, LinkageName("") , File(NULL) , Line(0) , TyDesc(NULL) @@ -1063,7 +1064,8 @@ Visitor->Apply(Context); Visitor->Apply(Name); - if (getVersion() > LLVMDebugVersion4) Visitor->Apply(DisplayName); + Visitor->Apply(FullName); + Visitor->Apply(LinkageName); Visitor->Apply(File); Visitor->Apply(Line); Visitor->Apply(TyDesc); @@ -1117,7 +1119,8 @@ << "Tag(" << getTag() << "), " << "Anchor(" << getAnchor() << "), " << "Name(\"" << getName() << "\"), " - << "DisplayName(\"" << getDisplayName() << "\"), " + << "FullName(\"" << getFullName() << "\"), " + << "LinkageName(\"" << getLinkageName() << "\"), " << "File(" << getFile() << ")," << "Line(" << getLine() << ")," << "Type(" << getType() << "), " @@ -1170,7 +1173,8 @@ << "Tag(" << getTag() << "), " << "Anchor(" << getAnchor() << "), " << "Name(\"" << getName() << "\"), " - << "DisplayName(\"" << getDisplayName() << "\"), " + << "FullName(\"" << getFullName() << "\"), " + << "LinkageName(\"" << getLinkageName() << "\"), " << "File(" << getFile() << ")," << "Line(" << getLine() << ")," << "Type(" << getType() << "), " Index: llvm/lib/CodeGen/DwarfWriter.cpp diff -u llvm/lib/CodeGen/DwarfWriter.cpp:1.104 llvm/lib/CodeGen/DwarfWriter.cpp:1.105 --- llvm/lib/CodeGen/DwarfWriter.cpp:1.104 Thu Nov 30 05:09:42 2006 +++ llvm/lib/CodeGen/DwarfWriter.cpp Thu Nov 30 08:35:45 2006 @@ -1587,11 +1587,13 @@ DIE *Static = new DIE(DW_TAG_variable); // Add name and mangled name. - const std::string &Name = StaticDesc->getDisplayName(); - const std::string &MangledName = StaticDesc->getName(); + const std::string &Name = StaticDesc->getName(); + const std::string &LinkageName = StaticDesc->getLinkageName(); AddString(Static, DW_AT_name, DW_FORM_string, Name); - AddString(Static, DW_AT_MIPS_linkage_name, DW_FORM_string, - MangledName); + if (!LinkageName.empty()) { + AddString(Static, DW_AT_MIPS_linkage_name, DW_FORM_string, + LinkageName); + } // Add location. AddSourceLine(Static, StaticDesc->getFile(), StaticDesc->getLine()); @@ -1613,17 +1615,15 @@ DIE *Method = new DIE(DW_TAG_subprogram); // Add name and mangled name. - const std::string &Name = MethodDesc->getDisplayName(); - const std::string &MangledName = MethodDesc->getName(); - bool IsCTor = false; + const std::string &Name = MethodDesc->getName(); + const std::string &LinkageName = MethodDesc->getLinkageName(); + + AddString(Method, DW_AT_name, DW_FORM_string, Name); + bool IsCTor = TyDesc->getName() == Name; - if (Name.empty()) { - AddString(Method, DW_AT_name, DW_FORM_string, MangledName); - IsCTor = TyDesc->getName() == MangledName; - } else { - AddString(Method, DW_AT_name, DW_FORM_string, Name); + if (!LinkageName.empty()) { AddString(Method, DW_AT_MIPS_linkage_name, DW_FORM_string, - MangledName); + LinkageName); } // Add location. @@ -1752,16 +1752,15 @@ // Get the global variable itself. GlobalVariable *GV = GVD->getGlobalVariable(); - const std::string &Name = GVD->hasMangledName() ? GVD->getDisplayName() - : GVD->getName(); - const std::string &MangledName = GVD->hasMangledName() ? GVD->getName() - : ""; + const std::string &Name = GVD->getName(); + const std::string &FullName = GVD->getFullName(); + const std::string &LinkageName = GVD->getLinkageName(); // Create the global's variable DIE. DIE *VariableDie = new DIE(DW_TAG_variable); AddString(VariableDie, DW_AT_name, DW_FORM_string, Name); - if (!MangledName.empty()) { + if (!LinkageName.empty()) { AddString(VariableDie, DW_AT_MIPS_linkage_name, DW_FORM_string, - MangledName); + LinkageName); } AddType(VariableDie, GVD->getType(), Unit); AddUInt(VariableDie, DW_AT_external, DW_FORM_flag, 1); @@ -1769,14 +1768,11 @@ // Add source line info if available. AddSourceLine(VariableDie, UnitDesc, GVD->getLine()); - // Work up linkage name. - const std::string LinkageName = Asm->getGlobalLinkName(GV); - // Add address. DIEBlock *Block = new DIEBlock(); AddUInt(Block, 0, DW_FORM_data1, DW_OP_addr); - AddObjectLabel(Block, 0, DW_FORM_udata, LinkageName); - AddBlock(VariableDie, DW_AT_location, 0, Block); + AddObjectLabel(Block, 0, DW_FORM_udata, Asm->getGlobalLinkName(GV)); + AddBlock(VariableDie, DW_AT_location, 0, Block); // Add to map. Slot = VariableDie; @@ -1786,7 +1782,7 @@ // Expose as global. // FIXME - need to check external flag. - Unit->AddGlobal(Name, VariableDie); + Unit->AddGlobal(FullName, VariableDie); return VariableDie; } @@ -1804,17 +1800,16 @@ if (Slot) return Slot; // Gather the details (simplify add attribute code.) - const std::string &Name = SPD->hasMangledName() ? SPD->getDisplayName() - : SPD->getName(); - const std::string &MangledName = SPD->hasMangledName() ? SPD->getName() - : ""; + const std::string &Name = SPD->getName(); + const std::string &FullName = SPD->getFullName(); + const std::string &LinkageName = SPD->getLinkageName(); unsigned IsExternal = SPD->isStatic() ? 0 : 1; DIE *SubprogramDie = new DIE(DW_TAG_subprogram); AddString(SubprogramDie, DW_AT_name, DW_FORM_string, Name); - if (!MangledName.empty()) { + if (!LinkageName.empty()) { AddString(SubprogramDie, DW_AT_MIPS_linkage_name, DW_FORM_string, - MangledName); + LinkageName); } if (SPD->getType()) AddType(SubprogramDie, SPD->getType(), Unit); AddUInt(SubprogramDie, DW_AT_external, DW_FORM_flag, IsExternal); @@ -1830,7 +1825,7 @@ Unit->getDie()->AddChild(SubprogramDie); // Expose as global. - Unit->AddGlobal(Name, SubprogramDie); + Unit->AddGlobal(FullName, SubprogramDie); return SubprogramDie; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits