Skip to content

Commit 5e47249

Browse files
committed
[BOLT][NFC] Add timers for MetadataManager invocations
Test Plan: added bolt/test/timers.c Reviewers: ayermolo, maksfb, rafaelauler, dcci Reviewed By: dcci Pull Request: #101267
1 parent ba00b22 commit 5e47249

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

bolt/lib/Rewrite/RewriteInstance.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3131,18 +3131,24 @@ void RewriteInstance::initializeMetadataManager() {
31313131
}
31323132

31333133
void RewriteInstance::processSectionMetadata() {
3134+
NamedRegionTimer T("processmetadata-section", "process section metadata",
3135+
TimerGroupName, TimerGroupDesc, opts::TimeRewrite);
31343136
initializeMetadataManager();
31353137

31363138
MetadataManager.runSectionInitializers();
31373139
}
31383140

31393141
void RewriteInstance::processMetadataPreCFG() {
3142+
NamedRegionTimer T("processmetadata-precfg", "process metadata pre-CFG",
3143+
TimerGroupName, TimerGroupDesc, opts::TimeRewrite);
31403144
MetadataManager.runInitializersPreCFG();
31413145

31423146
processProfileDataPreCFG();
31433147
}
31443148

31453149
void RewriteInstance::processMetadataPostCFG() {
3150+
NamedRegionTimer T("processmetadata-postcfg", "process metadata post-CFG",
3151+
TimerGroupName, TimerGroupDesc, opts::TimeRewrite);
31463152
MetadataManager.runInitializersPostCFG();
31473153
}
31483154

@@ -3536,10 +3542,14 @@ void RewriteInstance::emitAndLink() {
35363542
}
35373543

35383544
void RewriteInstance::finalizeMetadataPreEmit() {
3545+
NamedRegionTimer T("finalizemetadata-preemit", "finalize metadata pre-emit",
3546+
TimerGroupName, TimerGroupDesc, opts::TimeRewrite);
35393547
MetadataManager.runFinalizersPreEmit();
35403548
}
35413549

35423550
void RewriteInstance::updateMetadata() {
3551+
NamedRegionTimer T("updatemetadata-postemit", "update metadata post-emit",
3552+
TimerGroupName, TimerGroupDesc, opts::TimeRewrite);
35433553
MetadataManager.runFinalizersAfterEmit();
35443554

35453555
if (opts::UpdateDebugSections) {

bolt/test/timers.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/* This test checks timers for metadata manager phases.
2+
# RUN: %clang %cflags %s -o %t.exe
3+
# RUN: link_fdata %s %t.exe %t.fdata
4+
# RUN: llvm-bolt %t.exe -o %t.null --data %t.fdata -w %t.yaml --time-rewrite \
5+
# RUN: 2>&1 | FileCheck %s
6+
7+
# CHECK-DAG: update metadata post-emit
8+
# CHECK-DAG: process section metadata
9+
# CHECK-DAG: process metadata pre-CFG
10+
# CHECK-DAG: process metadata post-CFG
11+
# CHECK-DAG: finalize metadata pre-emit
12+
13+
# FDATA: 0 [unknown] 0 1 main 0 1 0
14+
*/
15+
int main() { return 0; }

0 commit comments

Comments
 (0)