When test is unrepresentative to production behavior, sample profile collected from production can cause unexpected performance behavior in test. To triage such issue, it is useful to have a cutoff flag to control how many symbols will be included into profile symbol list for binary search.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/ProfileData/SampleProf.cpp | ||
---|---|---|
34 | Nit: suggest making "cutoff" one word not hyphenated in option. | |
llvm/test/Transforms/SampleProfile/profile-sample-accurate.ll | ||
66 | Shouldn't it be the other way around - i.e. with the larger cutoff it will be included and with the smaller one it isn't? Also - confused at how the cutoff correlates to the placement in profile-symbol-list.text. In that file, _Z3toov is symbol number 5. So wouldn't a cutoff of 4 vs 5 affect whether it is included? |
llvm/test/Transforms/SampleProfile/profile-sample-accurate.ll | ||
---|---|---|
66 | I think it is sorted list. When cutoff is 3, precise symbol list includes too, so too has profile of 0. |
llvm/lib/ProfileData/SampleProf.cpp | ||
---|---|---|
34 | Fixed. | |
llvm/test/Transforms/SampleProfile/profile-sample-accurate.ll | ||
66 | Nice catch. It should be the other way around. I fix it. Yes, the order is confusing. David's explanation is right. It is sorted when the text profile symbol list is written into binary section. I change the order in the text to remove the confusion. |
Nit: suggest making "cutoff" one word not hyphenated in option.