[llvm] r216787 - Stuff
Aaron Ballman
aaron at aaronballman.com
Fri Aug 29 15:17:34 PDT 2014
On Fri, Aug 29, 2014 at 6:05 PM, David Blaikie <dblaikie at gmail.com> wrote:
> Author: dblaikie
> Date: Fri Aug 29 17:05:26 2014
> New Revision: 216787
>
> URL: http://llvm.org/viewvc/llvm-project?rev=216787&view=rev
> Log:
> Stuff
What about "things" instead? ;-) I suspect a commit log message was missed here.
~Aaron
>
> Modified:
> llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=216787&r1=216786&r2=216787&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Fri Aug 29 17:05:26 2014
> @@ -751,6 +751,11 @@ void DwarfDebug::beginModule() {
> for (MDNode *N : CU_Nodes->operands()) {
> DICompileUnit CUNode(N);
> DwarfCompileUnit &CU = constructDwarfCompileUnit(CUNode);
> + DIArray SPs = CUNode.getSubprograms();
> + for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i)
> + SPMap.insert(std::make_pair(SPs.getElement(i), &CU));
> + if (CU.getCUNode().getEmissionKind() == DIBuilder::LineTablesOnly)
> + continue;
> DIArray ImportedEntities = CUNode.getImportedEntities();
> for (unsigned i = 0, e = ImportedEntities.getNumElements(); i != e; ++i)
> ScopesWithImportedEntities.push_back(std::make_pair(
> @@ -761,9 +766,6 @@ void DwarfDebug::beginModule() {
> DIArray GVs = CUNode.getGlobalVariables();
> for (unsigned i = 0, e = GVs.getNumElements(); i != e; ++i)
> CU.createGlobalVariableDIE(DIGlobalVariable(GVs.getElement(i)));
> - DIArray SPs = CUNode.getSubprograms();
> - for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i)
> - SPMap.insert(std::make_pair(SPs.getElement(i), &CU));
> DIArray EnumTypes = CUNode.getEnumTypes();
> for (unsigned i = 0, e = EnumTypes.getNumElements(); i != e; ++i) {
> DIType Ty(EnumTypes.getElement(i));
> @@ -833,12 +835,13 @@ void DwarfDebug::finishSubprogramDefinit
> // If this subprogram has an abstract definition, reference that
> SPCU->addDIEEntry(*D, dwarf::DW_AT_abstract_origin, *AbsSPDIE);
> } else {
> - if (!D)
> + if (!D && TheCU.getEmissionKind() != DIBuilder::LineTablesOnly)
> // Lazily construct the subprogram if we didn't see either concrete or
> // inlined versions during codegen.
> D = SPCU->getOrCreateSubprogramDIE(SP);
> - // And attach the attributes
> - SPCU->applySubprogramAttributesToDefinition(SP, *D);
> + if (D)
> + // And attach the attributes
> + SPCU->applySubprogramAttributesToDefinition(SP, *D);
> }
> }
> }
> @@ -1667,6 +1670,17 @@ void DwarfDebug::endFunction(const Machi
>
> LexicalScope *FnScope = LScopes.getCurrentFunctionScope();
> DwarfCompileUnit &TheCU = *SPMap.lookup(FnScope->getScopeNode());
> + if (TheCU.getCUNode().getEmissionKind() == DIBuilder::LineTablesOnly && LScopes.getAbstractScopesList().empty()) {
> + assert(ScopeVariables.empty());
> + assert(CurrentFnArguments.empty());
> + assert(DbgValues.empty());
> + assert(AbstractVariables.empty());
> + LabelsBeforeInsn.clear();
> + LabelsAfterInsn.clear();
> + PrevLabel = nullptr;
> + CurFn = nullptr;
> + return;
> + }
>
> // Construct abstract scopes.
> for (LexicalScope *AScope : LScopes.getAbstractScopesList()) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list