r360539 - make -ftime-trace also print template arguments
Lubos Lunak via cfe-commits
cfe-commits at lists.llvm.org
Sun May 12 03:39:21 PDT 2019
Author: llunak
Date: Sun May 12 03:39:21 2019
New Revision: 360539
URL: http://llvm.org/viewvc/llvm-project?rev=360539&view=rev
Log:
make -ftime-trace also print template arguments
Without this, I get e.g. 'PerformPendingInstantiations' -> 'std::fill',
now I get 'std::fill<unsigned long *, int>'.
Differential Revision: https://reviews.llvm.org/D61822
Modified:
cfe/trunk/lib/CodeGen/CodeGenModule.cpp
cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=360539&r1=360538&r2=360539&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)
+++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Sun May 12 03:39:21 2019
@@ -2695,8 +2695,13 @@ void CodeGenModule::EmitGlobalDefinition
if (!shouldEmitFunction(GD))
return;
- llvm::TimeTraceScope TimeScope(
- "CodeGen Function", [&]() { return FD->getQualifiedNameAsString(); });
+ llvm::TimeTraceScope TimeScope("CodeGen Function", [&]() {
+ std::string Name;
+ llvm::raw_string_ostream OS(Name);
+ FD->getNameForDiagnostic(OS, getContext().getPrintingPolicy(),
+ /*Qualified=*/true);
+ return Name;
+ });
if (const auto *Method = dyn_cast<CXXMethodDecl>(D)) {
// Make sure to emit the definition(s) before we emit the thunks.
Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp?rev=360539&r1=360538&r2=360539&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp (original)
+++ cfe/trunk/lib/Sema/SemaTemplateInstantiate.cpp Sun May 12 03:39:21 2019
@@ -2014,7 +2014,11 @@ Sema::InstantiateClass(SourceLocation Po
return true;
llvm::TimeTraceScope TimeScope("InstantiateClass", [&]() {
- return Instantiation->getQualifiedNameAsString();
+ std::string Name;
+ llvm::raw_string_ostream OS(Name);
+ Instantiation->getNameForDiagnostic(OS, getPrintingPolicy(),
+ /*Qualified=*/true);
+ return Name;
});
Pattern = PatternDef;
Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=360539&r1=360538&r2=360539&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Sun May 12 03:39:21 2019
@@ -4156,7 +4156,11 @@ void Sema::InstantiateFunctionDefinition
}
llvm::TimeTraceScope TimeScope("InstantiateFunction", [&]() {
- return Function->getQualifiedNameAsString();
+ std::string Name;
+ llvm::raw_string_ostream OS(Name);
+ Function->getNameForDiagnostic(OS, getPrintingPolicy(),
+ /*Qualified=*/true);
+ return Name;
});
// If we're performing recursive template instantiation, create our own
More information about the cfe-commits
mailing list