
We have "-profile-isfs" internal option for text, binary, and compactbinary format (mostly for debug and test purpose). We need to set the related flag in FunctionSamples so that ProfileIsFS is written to the header in extbinary format. Differential Revision: https://reviews.llvm.org/D108707
59 lines
3.0 KiB
Plaintext
59 lines
3.0 KiB
Plaintext
Basic tests for sample profiles using fs discriminators.
|
|
|
|
1- Show command and keep all the discrimiantor bits
|
|
RUN: llvm-profdata show --sample %p/Inputs/sample-fs.proftext -profile-isfs | FileCheck %s --check-prefix=SHOW1
|
|
RUN: llvm-profdata show --sample %p/Inputs/sample-fs.proftext -profile-isfs -fs-discriminator-pass=PassLast | FileCheck %s --check-prefix=SHOW1
|
|
SHOW1: Function: main: 6436, 0, 6 sampled lines
|
|
SHOW1: Samples collected in the function's body {
|
|
SHOW1: 4: 534
|
|
SHOW1: 4.2: 534
|
|
SHOW1: 4.738209026: 1068
|
|
SHOW1: 5: 1075
|
|
SHOW1: 5.1: 1075
|
|
SHOW1: 5.738209025: 2150
|
|
SHOW1: }
|
|
|
|
2- Show command and keep only the base discriminator bits
|
|
RUN: llvm-profdata show --sample %p/Inputs/sample-fs.proftext -profile-isfs -fs-discriminator-pass=Base | FileCheck %s --check-prefix=SHOW2
|
|
SHOW2: Function: main: 6436, 0, 4 sampled lines
|
|
SHOW2: Samples collected in the function's body {
|
|
SHOW2: 4: 534
|
|
SHOW2: 4.2: 1602
|
|
SHOW2: 5: 1075
|
|
SHOW2: 5.1: 3225
|
|
SHOW2: }
|
|
|
|
3- Show command and keep only the base discriminator bits and first pass of FS discriminator
|
|
RUN: llvm-profdata show --sample %p/Inputs/sample-fs.proftext -profile-isfs -fs-discriminator-pass=Pass1 | FileCheck %s --check-prefix=SHOW3
|
|
Function: main: 6436, 0, 6 sampled lines
|
|
SHOW3: Samples collected in the function's body {
|
|
SHOW3: 4: 534
|
|
SHOW3: 4.2: 534
|
|
SHOW3: 4.11522: 1068
|
|
SHOW3: 5: 1075
|
|
SHOW3: 5.1: 1075
|
|
SHOW3: 5.11521: 2150
|
|
SHOW3: }
|
|
|
|
4- Merge command and keep all the discrimiantor bits
|
|
RUN: llvm-profdata merge --sample %p/Inputs/sample-fs.proftext -profile-isfs -fs-discriminator-pass=PassLast --binary -o - | llvm-profdata show --sample - -o %t1-binary_1
|
|
RUN: llvm-profdata merge --sample %p/Inputs/sample-fs.proftext -profile-isfs --binary -o - | llvm-profdata show --sample - -o %t1-binary_2
|
|
RUN: llvm-profdata show --sample %p/Inputs/sample-fs.proftext -profile-isfs -o %t1-text
|
|
RUN: diff %t1-binary_1 %t1-text
|
|
RUN: diff %t1-binary_2 %t1-text
|
|
|
|
2- Merge command and keep only the base discriminator bits
|
|
RUN: llvm-profdata merge --sample %p/Inputs/sample-fs.proftext -profile-isfs -fs-discriminator-pass=Base --binary -o - | llvm-profdata show --sample - -o %t2-binary
|
|
RUN: llvm-profdata show --sample %p/Inputs/sample-fs.proftext -profile-isfs -fs-discriminator-pass=Base -o %t2-text
|
|
RUN: diff %t2-binary %t2-text
|
|
|
|
3- Merge command and keep only the base discriminator bits and first pass of FS discriminator
|
|
RUN: llvm-profdata merge --sample %p/Inputs/sample-fs.proftext -profile-isfs -fs-discriminator-pass=Pass1 --binary -o - | llvm-profdata show --sample - -o %t3-binary
|
|
RUN: llvm-profdata show --sample %p/Inputs/sample-fs.proftext -profile-isfs -fs-discriminator-pass=Pass1 -o %t3-text
|
|
RUN: diff %t3-binary %t3-text
|
|
|
|
4- ProfileIsFS is set properly in extbinary format from the internal option
|
|
RUN: llvm-profdata merge --sample %p/Inputs/sample-fs.proftext -profile-isfs --extbinary -o %t_extbin.afdo
|
|
RUN: llvm-profdata show --sample --show-sec-info-only %t_extbin.afdo | FileCheck %s --check-prefix=ISFSSET
|
|
ISFSSET: Flags: {fs-discriminator}
|