Temporarily revert r192749 as it is causing problems for LTO and

requires a more in depth change to the IR structure.

llvm-svn: 192938
This commit is contained in:
Eric Christopher 2013-10-18 01:57:30 +00:00
parent 77c5bb5e4a
commit ffbc4decc2
1 changed files with 8 additions and 2 deletions

View File

@ -827,7 +827,14 @@ CompileUnit *DwarfDebug::constructCompileUnit(const MDNode *N) {
// Construct subprogram DIE.
void DwarfDebug::constructSubprogramDIE(CompileUnit *TheCU, const MDNode *N) {
assert(!SPMap[N] && "Trying to create a subprogram DIE twice!");
// FIXME: We should only call this routine once, however, during LTO if a
// program is defined in multiple CUs we could end up calling it out of
// beginModule as we walk the CUs.
CompileUnit *&CURef = SPMap[N];
if (CURef)
return;
CURef = TheCU;
DISubprogram SP(N);
if (!SP.isDefinition())
@ -836,7 +843,6 @@ void DwarfDebug::constructSubprogramDIE(CompileUnit *TheCU, const MDNode *N) {
return;
DIE *SubprogramDie = TheCU->getOrCreateSubprogramDIE(SP);
SPMap[N] = TheCU;
// Expose as a global name.
TheCU->addGlobalName(SP.getName(), SubprogramDie, resolve(SP.getContext()));