llvm-project/llvm/test/tools/llvm-profdata/Inputs
Hongtao Yu ac068e014b [CSSPGO] Consume pseudo-probe-based AutoFDO profile
This change enables pseudo-probe-based sample counts to be consumed by the sample profile loader under the regular `-fprofile-sample-use` switch with minimal adjustments to the existing sample file formats. After the counts are imported, a probe helper, aka, a `PseudoProbeManager` object, is automatically launched to verify the CFG checksum of every function in the current compilation against the corresponding checksum from the profile. Mismatched checksums will cause a function profile to be slipped. A `SampleProfileProber` pass is scheduled before any of the `SampleProfileLoader` instances so that the CFG checksums as well as probe mappings are available during the profile loading time. The `PseudoProbeManager` object is set up right after the profile reading is done. In the future a CFG-based fuzzy matching could be done in `PseudoProbeManager`.

Samples will be applied only to pseudo probe instructions as well as probed callsites once the checksum verification goes through. Those instructions are processed in the same way that regular instructions would be processed in the line-number-based scenario. In other words, a function is processed in a regular way as if it was reduced to just containing pseudo probes (block probes and callsites).

**Adjustment to profile format **

A CFG checksum field is being added to the existing AutoFDO profile formats. So far only the text format and the extended binary format are supported. For the text format, a new line like
```
!CFGChecksum: 12345
```
is added to the end of the body sample lines. For the extended binary profile format, we introduce a metadata section to store the checksum map from function names to their CFG checksums.

Differential Revision: https://reviews.llvm.org/D92347
2020-12-16 15:57:18 -08:00
..
CSIR_profile.proftext
IR_profile.proftext
bad-hash.proftext
bar3-1.proftext
basic.proftext
c-general.profraw [profile] Add a mode to continuously sync counter updates to a file 2019-10-31 16:04:09 -07:00
clang_profile.proftext
compat-sample.profdata
compat.profdata.v1
compat.profdata.v2
compat.profdata.v4
compressed.profraw [profile] Fourth fix for toolchains without zlib after D68351 2019-10-31 16:46:22 -07:00
counter-mismatch-1.proftext
counter-mismatch-2.proftext
counter-mismatch-3.proftext
counter-mismatch-4.proftext
cs.proftext
cutoff.proftext
empty.proftext
extra-word.proftext
foo3-1.proftext
foo3-2.proftext
foo3bar3-1.proftext
gcc-sample-profile.gcov
header-directives-1.proftext [PGO] Supporting code for always instrumenting entry block 2020-07-22 15:01:53 -07:00
header-directives-2.proftext [PGO] Supporting code for always instrumenting entry block 2020-07-22 15:01:53 -07:00
header-directives-3.proftext [PGO] Supporting code for always instrumenting entry block 2020-07-22 15:01:53 -07:00
inline-samples.afdo
instr-remap.expected
instr-remap.proftext
instr-remap.remap
invalid-count-later.proftext
mix_instr.proftext Supplement instr profile with sample profile. 2020-07-27 20:17:40 -07:00
mix_sample.proftext Supplement instr profile with sample profile. 2020-07-27 20:17:40 -07:00
multiple-profdata-merge.proftext
no-counts.proftext
noncs.proftext
overflow-instr.proftext
overflow-sample.proftext
overlap_1.proftext
overlap_1_cs.proftext
overlap_1_vp.proftext
overlap_2.proftext
overlap_2_cs.proftext
overlap_2_vp.proftext
profile-symbol-list-1.text [SampleFDO] Add profile symbol list section to discriminate function being 2019-08-31 02:27:26 +00:00
profile-symbol-list-2.text [SampleFDO] Add profile symbol list section to discriminate function being 2019-08-31 02:27:26 +00:00
profile-symbol-list.expected [SampleFDO] Add profile symbol list section to discriminate function being 2019-08-31 02:27:26 +00:00
pseudo-probe-profile.proftext [CSSPGO] Consume pseudo-probe-based AutoFDO profile 2020-12-16 15:57:18 -08:00
same-name-1.proftext
same-name-2.proftext
same-name-3.proftext
same-name-4.proftext
sample-hot-func-list.proftext Add --hot-func-list to llvm-profdata show for sample profiles 2020-06-24 12:49:46 -07:00
sample-overlap-0.proftext [llvm-profdata] Implement llvm-profdata overlap for sample profiles 2020-08-08 17:49:48 -07:00
sample-overlap-1.proftext [llvm-profdata] Implement llvm-profdata overlap for sample profiles 2020-08-08 17:49:48 -07:00
sample-overlap-2.proftext [llvm-profdata] Implement llvm-profdata overlap for sample profiles 2020-08-08 17:49:48 -07:00
sample-overlap-3.proftext [llvm-profdata] Implement llvm-profdata overlap for sample profiles 2020-08-08 17:49:48 -07:00
sample-overlap-4.proftext [llvm-profdata] Implement llvm-profdata overlap for sample profiles 2020-08-08 17:49:48 -07:00
sample-overlap-5.proftext [llvm-profdata] Implement llvm-profdata overlap for sample profiles 2020-08-08 17:49:48 -07:00
sample-profile.proftext [AutoFDO] Make call targets order deterministic for sample profile 2019-08-20 20:52:00 +00:00
sample-remap.expected
sample-remap.proftext
sample-remap.remap
text-format-errors.text.bin
vp-malform.proftext
vp-malform2.proftext
vp-truncate.proftext
weight-instr-bar.profdata
weight-instr-foo.profdata
weight-sample-bar.proftext
weight-sample-foo.proftext