| #
b6ba10c6 |
| 28-Jun-2024 |
Matthew Weingarten <matt@weingarten.org> |
[Memprof] Reduce test binary sizes for memprof tests. (#97114)
PR 94264 had substantial increase in test binary size. This was due to
building LLVM and compiler-rt with GCC, implicitly causing the
[Memprof] Reduce test binary sizes for memprof tests. (#97114)
PR 94264 had substantial increase in test binary size. This was due to
building LLVM and compiler-rt with GCC, implicitly causing the runtimes
to be built with full debuginfo. Rebuilding LLVM with
`-DCMAKE_CXX_COMPILER=/usr/bin/clang++` and regenerating .exe files with
script `update_memprof_inputs.sh` avoids this increase in test binary
size.
show more ...
|
| #
30b93db5 |
| 26-Jun-2024 |
Matthew Weingarten <matt@weingarten.org> |
[Memprof] Adds the option to collect AccessCountHistograms for memprof. (#94264)
Adds compile time flag -mllvm -memprof-histogram and runtime flag
histogram=true|false to turn Histogram collection
[Memprof] Adds the option to collect AccessCountHistograms for memprof. (#94264)
Adds compile time flag -mllvm -memprof-histogram and runtime flag
histogram=true|false to turn Histogram collection on and off. The
-memprof-histogram flag relies on -memprof-use-callbacks=true to work.
Updates shadow mapping logic in histogram mode from having one 8 byte
counter for 64 bytes, to 1 byte for 8 bytes, capped at 255. Only
supports this granularity as of now.
Updates the RawMemprofReader and serializing MemoryInfoBlocks to binary
format, including changing to a new version of the raw binary format
from version 3 to version 4.
Updates creating MemoryInfoBlocks with and without Histograms. When two
MemoryInfoBlocks are merged, AccessCounts are summed up and the shorter
Histogram is removed.
Adds a memprof_histogram test case.
Initial commit for adding AccessCountHistograms up until RawProfile for
memprof
show more ...
|
|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0 |
|
| #
a1bbf5ac |
| 13-Mar-2023 |
Snehasish Kumar <snehasishk@google.com> |
[memprof] Record BuildIDs in the raw profile.
This patch adds support for recording BuildIds usng the sanitizer ListOfModules API. We add another entry to the SegmentEntry struct and change the memp
[memprof] Record BuildIDs in the raw profile.
This patch adds support for recording BuildIds usng the sanitizer ListOfModules API. We add another entry to the SegmentEntry struct and change the memprof raw version.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D145190
show more ...
|
| #
debe80cb |
| 13-Mar-2023 |
Snehasish Kumar <snehasishk@google.com> |
Revert "[memprof] Record BuildIDs in the raw profile."
This reverts commit 287177a47a396ca6cc0bef7696108cdaa0c68e5f.
|
|
Revision tags: llvmorg-16.0.0-rc4 |
|
| #
287177a4 |
| 28-Feb-2023 |
Snehasish Kumar <snehasishk@google.com> |
[memprof] Record BuildIDs in the raw profile.
This patch adds support for recording BuildIds usng the sanitizer ListOfModules API. We add another entry to the SegmentEntry struct and change the memp
[memprof] Record BuildIDs in the raw profile.
This patch adds support for recording BuildIds usng the sanitizer ListOfModules API. We add another entry to the SegmentEntry struct and change the memprof raw version.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D145190
show more ...
|
| #
e99b5ad3 |
| 09-Mar-2023 |
Snehasish Kumar <snehasishk@google.com> |
[memprof] Add scripts to automate testdata regeneration.
The memprof profiles and binaries need to be updated in case of version updates. This change adds three scripts for llvm-profdata, clang and
[memprof] Add scripts to automate testdata regeneration.
The memprof profiles and binaries need to be updated in case of version updates. This change adds three scripts for llvm-profdata, clang and llvm tests where memprof profiles are used as inputs. Also update the tests, profiles and binaries in this change. Change based on the review suggestions in D145023.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D145644
show more ...
|
| #
e1b569b9 |
| 06-Mar-2023 |
Snehasish Kumar <snehasishk@google.com> |
Revert "[memprof] Refactor tests to generate binaries and profiles on the fly."
This reverts commit 599b7690fa917ea4e9cd67275e34d0b5a0f51aa9. Since adding a cross project dependency is a concern.
|
|
Revision tags: llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
| #
ee73d240 |
| 12-Jan-2023 |
Teresa Johnson <tejohnson@google.com> |
[MemProf] Collect access density statistics during profiling
Track min/max/avg access density (accesses per byte and accesses per byte per lifetime second) metrics directly during profiling. This al
[MemProf] Collect access density statistics during profiling
Track min/max/avg access density (accesses per byte and accesses per byte per lifetime second) metrics directly during profiling. This allows more accurate use of these metrics in profile analysis and use, instead of trying to compute them from already aggregated data in the profile.
This required regenerating some of the raw profile and executable inputs for a few tests. While here, make the llvm-profdata memprof tests more resilient to differences in things like memory mapping, timestamps and cpu ids to make future test updates easier.
Differential Revision: https://reviews.llvm.org/D141558
show more ...
|
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1 |
|
| #
216575e5 |
| 04-Feb-2022 |
Snehasish Kumar <snehasishk@google.com> |
Revert "Revert "[ProfileData] Read and symbolize raw memprof profiles.""
This reverts commit dbf47d227d080e4eb7239b589660f51d7b08afa9.
Reapply https://reviews.llvm.org/D116784 now that https://revi
Revert "Revert "[ProfileData] Read and symbolize raw memprof profiles.""
This reverts commit dbf47d227d080e4eb7239b589660f51d7b08afa9.
Reapply https://reviews.llvm.org/D116784 now that https://reviews.llvm.org/D118413 has landed with a couple of fixes: * fix raw profile reader unaligned access identified by ubsan * fix windows build by using MOCK_CONST_METHOD3 instead of MOCK_METHOD.
show more ...
|
| #
dbf47d22 |
| 04-Feb-2022 |
Snehasish Kumar <snehasishk@google.com> |
Revert "[ProfileData] Read and symbolize raw memprof profiles."
This reverts commit 26f978d4c5ad0d2217940ef7625b0c3c0d576988.
This patch added a transitive dependency on libcurl via symbolize. See
Revert "[ProfileData] Read and symbolize raw memprof profiles."
This reverts commit 26f978d4c5ad0d2217940ef7625b0c3c0d576988.
This patch added a transitive dependency on libcurl via symbolize. See discussion https://reviews.llvm.org/D116784#inline-1137928 https://reviews.llvm.org/D113717#3295350
show more ...
|
|
Revision tags: llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
26f978d4 |
| 29-Dec-2021 |
Snehasish Kumar <snehasishk@google.com> |
[ProfileData] Read and symbolize raw memprof profiles.
This change extends the RawMemProfReader to read all the sections of the raw profile and symbolize the virtual addresses recorded as part of th
[ProfileData] Read and symbolize raw memprof profiles.
This change extends the RawMemProfReader to read all the sections of the raw profile and symbolize the virtual addresses recorded as part of the callstack for each allocation. For now the symbolization is used to display the contents of the profile with llvm-profdata.
Differential Revision: https://reviews.llvm.org/D116784
show more ...
|
| #
3a4d373e |
| 30-Nov-2021 |
Snehasish Kumar <snehasishk@google.com> |
[memprof] Align each rawprofile section to 8b.
The first 8b of each raw profile section need to be aligned to 8b since the first item in each section is a u64 count of the number of items in the sec
[memprof] Align each rawprofile section to 8b.
The first 8b of each raw profile section need to be aligned to 8b since the first item in each section is a u64 count of the number of items in the section. Summary of changes: * Assert alignment when reading counts. * Update test to check alignment, relax some size checks to allow padding. * Update raw binary inputs for llvm-profdata tests.
Differential Revision: https://reviews.llvm.org/D114826
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
7cca33b4 |
| 19-Nov-2021 |
Snehasish Kumar <snehasishk@google.com> |
[memprof] Extend llvm-profdata to display MemProf profile summaries.
This commit adds initial support to llvm-profdata to read and print summaries of raw memprof profiles. Summary of changes: * Refa
[memprof] Extend llvm-profdata to display MemProf profile summaries.
This commit adds initial support to llvm-profdata to read and print summaries of raw memprof profiles. Summary of changes: * Refactor shared defs to MemProfData.inc * Extend show_main to display memprof profile summaries. * Add a simple raw memprof profile reader. * Add a couple of tests to tools/llvm-profdata.
Differential Revision: https://reviews.llvm.org/D114286
show more ...
|