Add new DIE into the map asap.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137998 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2011-08-18 22:21:50 +00:00
parent 1dd56f05e1
commit 49e2f03849

View File

@ -1030,26 +1030,26 @@ static const ConstantExpr *getMergedGlobalExpr(const Value *V) {
/// createGlobalVariableDIE - create global variable DIE. /// createGlobalVariableDIE - create global variable DIE.
void CompileUnit::createGlobalVariableDIE(const MDNode *N) { void CompileUnit::createGlobalVariableDIE(const MDNode *N) {
DIGlobalVariable GV(N);
// Check for pre-existence. // Check for pre-existence.
if (getDIE(GV)) if (getDIE(N))
return; return;
DIType GTy = GV.getType(); DIGlobalVariable GV(N);
DIE *VariableDIE = new DIE(GV.getTag()); DIE *VariableDIE = new DIE(GV.getTag());
// Add to map.
bool isGlobalVariable = GV.getGlobal() != NULL; insertDIE(N, VariableDIE);
// Add name. // Add name.
addString(VariableDIE, dwarf::DW_AT_name, dwarf::DW_FORM_string, addString(VariableDIE, dwarf::DW_AT_name, dwarf::DW_FORM_string,
GV.getDisplayName()); GV.getDisplayName());
StringRef LinkageName = GV.getLinkageName(); StringRef LinkageName = GV.getLinkageName();
bool isGlobalVariable = GV.getGlobal() != NULL;
if (!LinkageName.empty() && isGlobalVariable) if (!LinkageName.empty() && isGlobalVariable)
addString(VariableDIE, dwarf::DW_AT_MIPS_linkage_name, addString(VariableDIE, dwarf::DW_AT_MIPS_linkage_name,
dwarf::DW_FORM_string, dwarf::DW_FORM_string,
getRealLinkageName(LinkageName)); getRealLinkageName(LinkageName));
// Add type. // Add type.
DIType GTy = GV.getType();
addType(VariableDIE, GTy); addType(VariableDIE, GTy);
// Add scoping info. // Add scoping info.
@ -1060,8 +1060,6 @@ void CompileUnit::createGlobalVariableDIE(const MDNode *N) {
} }
// Add line number info. // Add line number info.
addSourceLine(VariableDIE, GV); addSourceLine(VariableDIE, GV);
// Add to map.
insertDIE(N, VariableDIE);
// Add to context owner. // Add to context owner.
DIDescriptor GVContext = GV.getContext(); DIDescriptor GVContext = GV.getContext();
addToContextOwner(VariableDIE, GVContext); addToContextOwner(VariableDIE, GVContext);