Author: vedantk Date: Thu Jul 11 12:28:07 2019 New Revision: 365814 URL: http://llvm.org/viewvc/llvm-project?rev=365814&view=rev Log: Revert "[CGDebugInfo] Simplify EmitFunctionDecl parameters, NFC"
This reverts commit 1af41074445229fea66b99710a850e5f42ecfa95. Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp cfe/trunk/lib/CodeGen/CGDebugInfo.h Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=365814&r1=365813&r2=365814&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Jul 11 12:28:07 2019 @@ -3621,19 +3621,18 @@ void CGDebugInfo::EmitFunctionStart(Glob RegionMap[D].reset(SP); } -llvm::DISubprogram *CGDebugInfo::EmitFunctionDecl(GlobalDecl GD, - SourceLocation Loc, - QualType FnType, - bool IsDeclForCallSite) { +void CGDebugInfo::EmitFunctionDecl(GlobalDecl GD, SourceLocation Loc, + QualType FnType, llvm::Function *Fn) { StringRef Name; StringRef LinkageName; const Decl *D = GD.getDecl(); if (!D) - return nullptr; + return; llvm::DINode::DIFlags Flags = llvm::DINode::FlagZero; llvm::DIFile *Unit = getOrCreateFile(Loc); + bool IsDeclForCallSite = Fn ? true : false; llvm::DIScope *FDContext = IsDeclForCallSite ? Unit : getDeclContextDescriptor(D); llvm::DINodeArray TParamsArray; @@ -3666,8 +3665,11 @@ llvm::DISubprogram *CGDebugInfo::EmitFun FDContext, Name, LinkageName, Unit, LineNo, getOrCreateFunctionType(D, FnType, Unit), ScopeLine, Flags, SPFlags, TParamsArray.get(), getFunctionDeclaration(D)); + + if (IsDeclForCallSite) + Fn->setSubprogram(SP); + DBuilder.retainType(SP); - return SP; } void CGDebugInfo::EmitFuncDeclForCallSite(llvm::CallBase *CallOrInvoke, @@ -3689,13 +3691,8 @@ void CGDebugInfo::EmitFuncDeclForCallSit if (Func->getSubprogram()) return; - if (!CalleeDecl->isStatic() && !CalleeDecl->isInlined()) { - llvm::DISubprogram *SP = - EmitFunctionDecl(CalleeDecl, CalleeDecl->getLocation(), CalleeType, - /*IsDeclForCallSite=*/true); - assert(SP && "Could not find decl for callee?"); - Func->setSubprogram(SP); - } + if (!CalleeDecl->isStatic() && !CalleeDecl->isInlined()) + EmitFunctionDecl(CalleeDecl, CalleeDecl->getLocation(), CalleeType, Func); } void CGDebugInfo::EmitInlineFunctionStart(CGBuilderTy &Builder, GlobalDecl GD) { Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=365814&r1=365813&r2=365814&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Thu Jul 11 12:28:07 2019 @@ -408,11 +408,10 @@ public: /// End an inlined function scope. void EmitInlineFunctionEnd(CGBuilderTy &Builder); - /// Emit debug info for a function declaration. Set \p IsDeclForCallSite if - /// a call site entry must reference the declaration. - llvm::DISubprogram *EmitFunctionDecl(GlobalDecl GD, SourceLocation Loc, - QualType FnType, - bool IsDeclForCallSite = false); + /// Emit debug info for a function declaration. + /// \p Fn is set only when a declaration for a debug call site gets created. + void EmitFunctionDecl(GlobalDecl GD, SourceLocation Loc, + QualType FnType, llvm::Function *Fn = nullptr); /// Emit debug info for an extern function being called. /// This is needed for call site debug info. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits