Skip to content

Commit ea2e87f

Browse files
committed
[Stats] Replace nonstandard SharedTimers with FrontendStatsTracers.
1 parent 67baa65 commit ea2e87f

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

include/swift/Basic/Statistic.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ class FrontendStatsTracer
185185
/// entity type, and produce a tracer that's either active or inert depending
186186
/// on whether the provided \p Reporter is null (nullptr means "tracing is
187187
/// disabled").
188+
FrontendStatsTracer(UnifiedStatsReporter *Reporter, StringRef EventName);
188189
FrontendStatsTracer(UnifiedStatsReporter *Reporter, StringRef EventName,
189190
const Decl *D);
190191
FrontendStatsTracer(UnifiedStatsReporter *Reporter, StringRef EventName,

lib/AST/ASTContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1402,7 +1402,7 @@ void ASTContext::loadObjCMethods(
14021402

14031403
void ASTContext::verifyAllLoadedModules() const {
14041404
#ifndef NDEBUG
1405-
SharedTimer("verifyAllLoadedModules");
1405+
FrontendStatsTracer tracer(Stats, "verify-all-loaded-modules");
14061406
for (auto &loader : Impl.ModuleLoaders)
14071407
loader->verifyAllModules();
14081408

lib/Basic/Statistic.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,10 @@ FrontendStatsTracer::FrontendStatsTracer(
296296

297297
FrontendStatsTracer::FrontendStatsTracer() = default;
298298

299+
FrontendStatsTracer::FrontendStatsTracer(UnifiedStatsReporter *R, StringRef S)
300+
: FrontendStatsTracer(R, S, nullptr, nullptr)
301+
{}
302+
299303
FrontendStatsTracer::FrontendStatsTracer(UnifiedStatsReporter *R, StringRef S,
300304
const Decl *D)
301305
: FrontendStatsTracer(R, S, D, getTraceFormatter<const Decl *>())

lib/Frontend/Frontend.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ shouldImplicityImportSwiftOnoneSupportModule(CompilerInvocation &Invocation) {
369369
}
370370

371371
void CompilerInstance::performSema() {
372-
SharedTimer timer("performSema");
372+
FrontendStatsTracer tracer(Context->Stats, "perform-sema");
373373
Context->LoadedModules[MainModule->getName()] = getMainModule();
374374

375375
if (Invocation.getInputKind() == InputFileKind::IFK_SIL) {
@@ -417,7 +417,7 @@ CompilerInstance::ImplicitImports::ImplicitImports(CompilerInstance &compiler) {
417417
}
418418

419419
bool CompilerInstance::loadStdlib() {
420-
SharedTimer timer("performSema-loadStdlib");
420+
FrontendStatsTracer tracer(Context->Stats, "load-stdlib");
421421
ModuleDecl *M = Context->getStdlibModule(true);
422422

423423
if (!M) {
@@ -436,7 +436,7 @@ bool CompilerInstance::loadStdlib() {
436436
}
437437

438438
ModuleDecl *CompilerInstance::importUnderlyingModule() {
439-
SharedTimer timer("performSema-importUnderlyingModule");
439+
FrontendStatsTracer tracer(Context->Stats, "import-underlying-module");
440440
ModuleDecl *objCModuleUnderlyingMixedFramework =
441441
static_cast<ClangImporter *>(Context->getClangModuleLoader())
442442
->loadModule(SourceLoc(),
@@ -449,7 +449,7 @@ ModuleDecl *CompilerInstance::importUnderlyingModule() {
449449
}
450450

451451
ModuleDecl *CompilerInstance::importBridgingHeader() {
452-
SharedTimer timer("performSema-importBridgingHeader");
452+
FrontendStatsTracer tracer(Context->Stats, "import-bridging-header");
453453
const StringRef implicitHeaderPath =
454454
Invocation.getFrontendOptions().ImplicitObjCHeaderPath;
455455
auto clangImporter =
@@ -464,7 +464,7 @@ ModuleDecl *CompilerInstance::importBridgingHeader() {
464464

465465
void CompilerInstance::getImplicitlyImportedModules(
466466
SmallVectorImpl<ModuleDecl *> &importModules) {
467-
SharedTimer timer("performSema-getImplicitlyImportedModules");
467+
FrontendStatsTracer tracer(Context->Stats, "get-implicitly-imported-modules");
468468
for (auto &ImplicitImportModuleName :
469469
Invocation.getFrontendOptions().ImplicitImportModuleNames) {
470470
if (Lexer::isIdentifier(ImplicitImportModuleName)) {
@@ -520,7 +520,7 @@ void CompilerInstance::addMainFileToModule(
520520

521521
void CompilerInstance::parseAndCheckTypes(
522522
const ImplicitImports &implicitImports) {
523-
SharedTimer timer("performSema-parseAndCheckTypes");
523+
FrontendStatsTracer tracer(Context->Stats, "parse-and-check-types");
524524
// Delayed parsing callback for the primary file, or all files
525525
// in non-WMO mode.
526526
std::unique_ptr<DelayedParsingCallbacks> PrimaryDelayedCB{
@@ -584,7 +584,7 @@ void CompilerInstance::parseLibraryFile(
584584
PersistentParserState &PersistentState,
585585
DelayedParsingCallbacks *PrimaryDelayedCB,
586586
DelayedParsingCallbacks *SecondaryDelayedCB) {
587-
SharedTimer timer("performSema-parseLibraryFile");
587+
FrontendStatsTracer tracer(Context->Stats, "parse-library-file");
588588

589589
auto *NextInput = createSourceFileForMainModule(
590590
SourceFileKind::Library, implicitImports.kind, BufferID);
@@ -638,7 +638,8 @@ bool CompilerInstance::parsePartialModulesAndLibraryFiles(
638638
PersistentParserState &PersistentState,
639639
DelayedParsingCallbacks *PrimaryDelayedCB,
640640
DelayedParsingCallbacks *SecondaryDelayedCB) {
641-
SharedTimer timer("performSema-parsePartialModulesAndLibraryFiles");
641+
FrontendStatsTracer tracer(Context->Stats,
642+
"parse-partial-modules-and-library-files");
642643
bool hadLoadError = false;
643644
// Parse all the partial modules first.
644645
for (auto &PM : PartialModules) {
@@ -662,8 +663,8 @@ void CompilerInstance::parseAndTypeCheckMainFile(
662663
PersistentParserState &PersistentState,
663664
DelayedParsingCallbacks *DelayedParseCB,
664665
OptionSet<TypeCheckingFlags> TypeCheckOptions) {
665-
SharedTimer timer(
666-
"performSema-checkTypesWhileParsingMain-parseAndTypeCheckMainFile");
666+
FrontendStatsTracer tracer(Context->Stats,
667+
"parse-and-typecheck-main-file");
667668
bool mainIsPrimary =
668669
(isWholeModuleCompilation() || isPrimaryInput(MainBufferID));
669670

lib/Sema/TypeChecker.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,8 +694,8 @@ void swift::performTypeChecking(SourceFile &SF, TopLevelContext &TLC,
694694
}
695695

696696
void swift::performWholeModuleTypeChecking(SourceFile &SF) {
697-
SharedTimer("performWholeModuleTypeChecking");
698697
auto &Ctx = SF.getASTContext();
698+
FrontendStatsTracer tracer(Ctx.Stats, "perform-whole-module-type-checking");
699699
Ctx.diagnoseAttrsRequiringFoundation(SF);
700700
Ctx.diagnoseObjCMethodConflicts(SF);
701701
Ctx.diagnoseObjCUnsatisfiedOptReqConflicts(SF);

0 commit comments

Comments
 (0)