Skip to content

Commit

Permalink
[CTU] Add statistics
Browse files Browse the repository at this point in the history
Reviewers: xazax.hun, a_sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Differential Revision: https://reviews.llvm.org/D55133

llvm-svn: 348584
  • Loading branch information
martong committed Dec 7, 2018
1 parent 75f6cad commit 700a29a
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion clang/lib/CrossTU/CrossTranslationUnit.cpp
Expand Up @@ -21,6 +21,7 @@
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Index/USRGeneration.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/Path.h"
Expand All @@ -32,6 +33,15 @@ namespace clang {
namespace cross_tu {

namespace {
#define DEBUG_TYPE "CrossTranslationUnit"
STATISTIC(NumGetCTUCalled, "The # of getCTUDefinition function called");
STATISTIC(
NumNotInOtherTU,
"The # of getCTUDefinition called but the function is not in any other TU");
STATISTIC(NumGetCTUSuccess,
"The # of getCTUDefinition successfully returned the "
"requested function's body");

// FIXME: This class is will be removed after the transition to llvm::Error.
class IndexErrorCategory : public std::error_category {
public:
Expand Down Expand Up @@ -151,6 +161,7 @@ CrossTranslationUnitContext::getCrossTUDefinition(const FunctionDecl *FD,
StringRef CrossTUDir,
StringRef IndexName) {
assert(!FD->hasBody() && "FD has a definition in current translation unit!");
++NumGetCTUCalled;
const std::string LookupFnName = getLookupName(FD);
if (LookupFnName.empty())
return llvm::make_error<IndexError>(
Expand Down Expand Up @@ -216,8 +227,10 @@ llvm::Expected<ASTUnit *> CrossTranslationUnitContext::loadExternalAST(
}

auto It = FunctionFileMap.find(LookupName);
if (It == FunctionFileMap.end())
if (It == FunctionFileMap.end()) {
++NumNotInOtherTU;
return llvm::make_error<IndexError>(index_error_code::missing_definition);
}
StringRef ASTFileName = It->second;
auto ASTCacheEntry = FileASTUnitMap.find(ASTFileName);
if (ASTCacheEntry == FileASTUnitMap.end()) {
Expand Down Expand Up @@ -250,6 +263,7 @@ CrossTranslationUnitContext::importDefinition(const FunctionDecl *FD) {
cast<FunctionDecl>(Importer.Import(const_cast<FunctionDecl *>(FD)));
assert(ToDecl->hasBody());
assert(FD->hasBody() && "Functions already imported should have body.");
++NumGetCTUSuccess;
return ToDecl;
}

Expand Down

0 comments on commit 700a29a

Please sign in to comment.