llvm-project/llvm/test/tools/llvm-profdata/Inputs
weihe 540489de68 [llvm-profdata] Implement llvm-profdata overlap for sample profiles
Implemented the `llvm-profdata overlap` feature for sample profiles. It reports weighted //similarity// and unweighted //overlap// metrics at program and function level for two input profiles. Similarity metrics are symmetric with regards to the order of two input profiles. By default, the tool only reports program-level summary. Users can look into function-level details via additional options `--function`, `--similarity-cutoff`, and `--value-cutoff`.

The similarity metrics are designed as follows:
* Program-level summary
    * Whole program profile similarity is an aggregate over function-level similarity `FS`: `PS = sum(FS(A) * avg_weight(A))` for all function `A`.
    * Whole program sample overlap: `PSO = common_samples / total_samples`.
    * Function overlap: `FO = #common_function / #total_function`.
    * Hot-function overlap: `HFO = #common_hot_function / #total_hot_function`.
    * Hot-block overlap: `HBO = #common_hot_block / #total_hot_block`.
* Function-level details
    * Function-level similarity is an aggregate over line/block-level similarities `BS` of all sample lines/blocks in the function, weighted by the closeness of the function's weights in two profiles: `FS = sum(BS(i)) * (1 - weight_distance(A))`.
    * Function-level sample overlap: `FSO = common_samples / total_samples` for samples in the function.

Reviewed By: wenlei, hoyFB, wmi

Differential Revision: https://reviews.llvm.org/D83852
2020-08-08 17:49:48 -07: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
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