This is an archive of the discontinued LLVM Phabricator instance.

[BOLT] Handle recursive calls as inter-branches in DataAggregator
ClosedPublic

Authored by Amir on Jun 6 2023, 10:11 PM.

Details

Summary

Align yaml and fdata profiles by applying the same treatment to recursive
calls (direct, indirect, tail). fdata profile increments entry count when
handling recursive calls. Make perf/pre-aggregated perf reader (DataAggregator)
do the same.

Test Plan:
In pre-aggregated-perf.test, add a dummy pre-aggregated branch entry between
an indirect call in frame_dummy function and its entry point.
Check that YAML profile gets incremented entry count for this function.

End-to-end test: https://github.com/rafaelauler/bolt-tests/pull/24

Diff Detail

Event Timeline

Amir created this revision.Jun 6 2023, 10:11 PM
Herald added a reviewer: maksfb. · View Herald Transcript
Herald added a project: Restricted Project. · View Herald Transcript
Amir requested review of this revision.Jun 6 2023, 10:11 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 6 2023, 10:11 PM
Amir edited the summary of this revision. (Show Details)Jun 6 2023, 10:13 PM
Amir edited the summary of this revision. (Show Details)
Amir edited the summary of this revision. (Show Details)
Amir edited the summary of this revision. (Show Details)Jun 7 2023, 9:37 AM
Amir edited the summary of this revision. (Show Details)Jun 7 2023, 11:13 AM
maksfb accepted this revision.Jun 7 2023, 11:04 PM

LGTM

This revision is now accepted and ready to land.Jun 7 2023, 11:04 PM