CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
117 lines
4.8 KiB
Plaintext
117 lines
4.8 KiB
Plaintext
Some basic tests for supplementing instrumentation profile with sample profile.
|
|
|
|
Test all of goo's counters will be set to PseudoHot.
|
|
RUN: llvm-profdata merge \
|
|
RUN: -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
|
|
RUN: -suppl-min-size-threshold=0 %p/Inputs/mix_instr.proftext -o %t
|
|
RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX1
|
|
|
|
MIX1: foo:
|
|
MIX1-NEXT: Hash: 0x0000000000000007
|
|
MIX1-NEXT: Counters: 5
|
|
MIX1-NEXT: Block counts: [12, 13, 0, 0, 0]
|
|
MIX1: goo:
|
|
MIX1-NEXT: Hash: 0x0000000000000005
|
|
MIX1-NEXT: Counters: 3
|
|
MIX1-NOT: Block counts:
|
|
MIX1-SAME: <PseudoHot>
|
|
MIX1: moo:
|
|
MIX1-NEXT: Hash: 0x0000000000000009
|
|
MIX1-NEXT: Counters: 4
|
|
MIX1-NEXT: Block counts: [3000, 1000, 2000, 500]
|
|
|
|
Test when the zero counter ratio of foo is higher than zero-counter-threshold.
|
|
RUN: llvm-profdata merge \
|
|
RUN: -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
|
|
RUN: -suppl-min-size-threshold=0 -zero-counter-threshold=0.5 \
|
|
RUN: -instr-prof-cold-threshold=30 %p/Inputs/mix_instr.proftext -o %t
|
|
RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX2
|
|
|
|
MIX2: foo:
|
|
MIX2-NEXT: Hash: 0x0000000000000007
|
|
MIX2-NEXT: Counters: 5
|
|
MIX2-NOT: Block counts:
|
|
MIX2-SAME: <PseudoHot>
|
|
MIX2: goo:
|
|
MIX2-NEXT: Hash: 0x0000000000000005
|
|
MIX2-NEXT: Counters: 3
|
|
MIX2-NOT: Block counts:
|
|
MIX2-SAME: <PseudoHot>
|
|
MIX2: moo:
|
|
MIX2-NEXT: Hash: 0x0000000000000009
|
|
MIX2-NEXT: Counters: 4
|
|
MIX2-NEXT: Block counts: [3000, 1000, 2000, 500]
|
|
|
|
Test when the zero counter ratio of foo is lower than zero-counter-threshold.
|
|
RUN: llvm-profdata merge \
|
|
RUN: -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
|
|
RUN: -suppl-min-size-threshold=0 -zero-counter-threshold=0.7 \
|
|
RUN: -instr-prof-cold-threshold=30 %p/Inputs/mix_instr.proftext -o %t
|
|
RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX3
|
|
|
|
MIX3: foo:
|
|
MIX3-NEXT: Hash: 0x0000000000000007
|
|
MIX3-NEXT: Counters: 5
|
|
MIX3-NEXT: Block counts: [1384, 1500, 0, 0, 0]
|
|
MIX3: goo:
|
|
MIX3-NEXT: Hash: 0x0000000000000005
|
|
MIX3-NEXT: Counters: 3
|
|
MIX3-NOT: Block counts:
|
|
MIX3-SAME: <PseudoHot>
|
|
MIX3: moo:
|
|
MIX3-NEXT: Hash: 0x0000000000000009
|
|
MIX3-NEXT: Counters: 4
|
|
MIX3-NEXT: Block counts: [3000, 1000, 2000, 500]
|
|
|
|
Test foo's profile won't be adjusted because its size is smaller
|
|
than suppl-min-size-threshold.
|
|
RUN: llvm-profdata merge \
|
|
RUN: -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
|
|
RUN: -suppl-min-size-threshold=2 -zero-counter-threshold=0.7 \
|
|
RUN: -instr-prof-cold-threshold=30 %p/Inputs/mix_instr_small.proftext -o %t
|
|
RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=MIX4
|
|
|
|
MIX4: foo:
|
|
MIX4-NEXT: Hash: 0x0000000000000007
|
|
MIX4-NEXT: Counters: 1
|
|
MIX4-NEXT: Block counts: [0]
|
|
MIX4: goo:
|
|
MIX4-NEXT: Hash: 0x0000000000000005
|
|
MIX4-NEXT: Counters: 3
|
|
MIX4-NOT: Block counts:
|
|
MIX4-SAME: <PseudoHot>
|
|
MIX4: moo:
|
|
MIX4-NEXT: Hash: 0x0000000000000009
|
|
MIX4-NEXT: Counters: 1
|
|
MIX4-NEXT: Block counts: [0]
|
|
|
|
Test profile summary won't be affected by pseudo counters.
|
|
RUN: llvm-profdata merge \
|
|
RUN: -supplement-instr-with-sample=%p/Inputs/mix_sample.proftext \
|
|
RUN: -suppl-min-size-threshold=0 %p/Inputs/mix_instr.proftext -o %t
|
|
RUN: llvm-profdata show %t -detailed-summary | FileCheck %s --check-prefix=MIX5
|
|
|
|
MIX5: Instrumentation level: IR
|
|
MIX5-NEXT: Total functions: 2
|
|
MIX5-NEXT: Maximum function count: 3000
|
|
MIX5-NEXT: Maximum internal block count: 2000
|
|
MIX5-NEXT: Total number of blocks: 9
|
|
MIX5-NEXT: Total count: 6525
|
|
MIX5-NEXT: Detailed summary:
|
|
MIX5-NEXT: 1 blocks (11.11%) with count >= 3000 account for 1% of the total counts.
|
|
MIX5-NEXT: 1 blocks (11.11%) with count >= 3000 account for 10% of the total counts.
|
|
MIX5-NEXT: 1 blocks (11.11%) with count >= 3000 account for 20% of the total counts.
|
|
MIX5-NEXT: 1 blocks (11.11%) with count >= 3000 account for 30% of the total counts.
|
|
MIX5-NEXT: 1 blocks (11.11%) with count >= 3000 account for 40% of the total counts.
|
|
MIX5-NEXT: 2 blocks (22.22%) with count >= 2000 account for 50% of the total counts.
|
|
MIX5-NEXT: 2 blocks (22.22%) with count >= 2000 account for 60% of the total counts.
|
|
MIX5-NEXT: 2 blocks (22.22%) with count >= 2000 account for 70% of the total counts.
|
|
MIX5-NEXT: 3 blocks (33.33%) with count >= 1000 account for 80% of the total counts.
|
|
MIX5-NEXT: 3 blocks (33.33%) with count >= 1000 account for 90% of the total counts.
|
|
MIX5-NEXT: 4 blocks (44.44%) with count >= 500 account for 95% of the total counts.
|
|
MIX5-NEXT: 4 blocks (44.44%) with count >= 500 account for 99% of the total counts.
|
|
MIX5-NEXT: 6 blocks (66.67%) with count >= 12 account for 99.9% of the total counts.
|
|
MIX5-NEXT: 6 blocks (66.67%) with count >= 12 account for 99.99% of the total counts.
|
|
MIX5-NEXT: 6 blocks (66.67%) with count >= 12 account for 99.999% of the total counts.
|
|
MIX5-NEXT: 6 blocks (66.67%) with count >= 12 account for 99.9999% of the total counts.
|