Remove the last mention of LineTablesOnly from DwarfUnit, sinking it into DwarfCompileUnit

This is a useful distinction/invariant/delination to make because
LineTablesOnly mode is never relevant to type units, so it's clear that
we're not doing weird line-tables-only-with-types by making this API
choice.

It also lays the foundations nicely for adding gmlt-like data to fission
skeleton CUs while limiting the effects to CUs and not TUs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221093 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie
2014-11-02 08:18:06 +00:00
parent c28e37e4dd
commit 1fcc568ebb
3 changed files with 7 additions and 4 deletions

View File

@@ -832,7 +832,8 @@ void DwarfCompileUnit::applySubprogramAttributesToDefinition(DISubprogram SP,
DIE &SPDie) { DIE &SPDie) {
DISubprogram SPDecl = SP.getFunctionDeclaration(); DISubprogram SPDecl = SP.getFunctionDeclaration();
DIScope Context = resolve(SPDecl ? SPDecl.getContext() : SP.getContext()); DIScope Context = resolve(SPDecl ? SPDecl.getContext() : SP.getContext());
applySubprogramAttributes(SP, SPDie); applySubprogramAttributes(SP, SPDie, getCUNode().getEmissionKind() ==
DIBuilder::LineTablesOnly);
addGlobalName(SP.getName(), SPDie, Context); addGlobalName(SP.getName(), SPDie, Context);
} }
} // end llvm namespace } // end llvm namespace

View File

@@ -1257,7 +1257,8 @@ DIE *DwarfUnit::getOrCreateSubprogramDIE(DISubprogram SP) {
return &SPDie; return &SPDie;
} }
void DwarfUnit::applySubprogramAttributes(DISubprogram SP, DIE &SPDie) { void DwarfUnit::applySubprogramAttributes(DISubprogram SP, DIE &SPDie,
bool Minimal) {
DIE *DeclDie = nullptr; DIE *DeclDie = nullptr;
StringRef DeclLinkageName; StringRef DeclLinkageName;
if (DISubprogram SPDecl = SP.getFunctionDeclaration()) { if (DISubprogram SPDecl = SP.getFunctionDeclaration()) {
@@ -1292,7 +1293,7 @@ void DwarfUnit::applySubprogramAttributes(DISubprogram SP, DIE &SPDie) {
addString(SPDie, dwarf::DW_AT_name, SP.getName()); addString(SPDie, dwarf::DW_AT_name, SP.getName());
// Skip the rest of the attributes under -gmlt to save space. // Skip the rest of the attributes under -gmlt to save space.
if(getCUNode().getEmissionKind() == DIBuilder::LineTablesOnly) if (Minimal)
return; return;
addSourceLine(SPDie, SP); addSourceLine(SPDie, SP);

View File

@@ -299,7 +299,8 @@ public:
/// getOrCreateSubprogramDIE - Create new DIE using SP. /// getOrCreateSubprogramDIE - Create new DIE using SP.
DIE *getOrCreateSubprogramDIE(DISubprogram SP); DIE *getOrCreateSubprogramDIE(DISubprogram SP);
void applySubprogramAttributes(DISubprogram SP, DIE &SPDie); void applySubprogramAttributes(DISubprogram SP, DIE &SPDie,
bool Minimal = false);
/// getOrCreateTypeDIE - Find existing DIE or create new DIE for the /// getOrCreateTypeDIE - Find existing DIE or create new DIE for the
/// given DIType. /// given DIType.