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
Unit Tests
| Time | Test | |
|---|---|---|
| 50 ms | x64 debian > Flang.Semantics::resolve102.f90 |
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.