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, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6 |
|
#
311801a0 |
| 28-Nov-2022 |
Teresa Johnson <tejohnson@google.com> |
Revert "[MemProf] Defer profile file setup until dump time"
This reverts commit ea1826ee57984d4f44fdb4b35a47169d393618ed.
This change is breaking the ability of tests to override the profile output
Revert "[MemProf] Defer profile file setup until dump time"
This reverts commit ea1826ee57984d4f44fdb4b35a47169d393618ed.
This change is breaking the ability of tests to override the profile output file. Need to add a mechanism to do that before resubmitting.
show more ...
|
#
ea1826ee |
| 17-Nov-2022 |
Teresa Johnson <tejohnson@google.com> |
[MemProf] Defer profile file setup until dump time
With all of the writing of the memprof profile consolidated into one place, there is no need to set up the profile file (which creates the file and
[MemProf] Defer profile file setup until dump time
With all of the writing of the memprof profile consolidated into one place, there is no need to set up the profile file (which creates the file and also redirects all printing from the runtime to it) until we are ready to dump the profile.
This allows errors and other messages to be dumped to stderr instead of the profile file, which by default is in a binary format. Additionally, reset the output file to stderr after dumping the profile so that any requested memprof allocator statistics are printed to stderr.
Differential Revision: https://reviews.llvm.org/D138175
show more ...
|
Revision tags: 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, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
#
aacaebc6 |
| 10-Nov-2021 |
Snehasish Kumar <snehasishk@google.com> |
[memprof] Make the raw binary format the default.
Set the default memprof serialization format as binary. 9 tests are updated to use print_text=true. Also fixed an issue with concatenation of defaul
[memprof] Make the raw binary format the default.
Set the default memprof serialization format as binary. 9 tests are updated to use print_text=true. Also fixed an issue with concatenation of default and test specified options (missing separator).
Differential Revision: https://reviews.llvm.org/D113617
show more ...
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5 |
|
#
0949f96d |
| 29-Sep-2020 |
Teresa Johnson <tejohnson@google.com> |
[MemProf] Pass down memory profile name with optional path from clang
Similar to -fprofile-generate=, add -fmemory-profile= which takes a directory path. This is passed down to LLVM via a new module
[MemProf] Pass down memory profile name with optional path from clang
Similar to -fprofile-generate=, add -fmemory-profile= which takes a directory path. This is passed down to LLVM via a new module flag metadata. LLVM in turn provides this name to the runtime via the new __memprof_profile_filename variable.
Additionally, always pass a default filename (in $cwd if a directory name is not specified vi the = form of the option). This is also consistent with the behavior of the PGO instrumentation. Since the memory profiles will generally be fairly large, it doesn't make sense to dump them to stderr. Also, importantly, the memory profiles will eventually be dumped in a compact binary format, which is another reason why it does not make sense to send these to stderr by default.
Change the existing memprof tests to specify log_path=stderr when that was being relied on.
Depends on D89086.
Differential Revision: https://reviews.llvm.org/D89087
show more ...
|
Revision tags: llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3 |
|
#
3d4bba30 |
| 03-Sep-2020 |
Teresa Johnson <tejohnson@google.com> |
[MemProf] Memory profiling runtime support
See RFC for background: http://lists.llvm.org/pipermail/llvm-dev/2020-June/142744.html
Follow on companion to the clang/llvm instrumentation support in D8
[MemProf] Memory profiling runtime support
See RFC for background: http://lists.llvm.org/pipermail/llvm-dev/2020-June/142744.html
Follow on companion to the clang/llvm instrumentation support in D85948 and committed earlier.
This patch adds the compiler-rt runtime support for the memory profiling.
Note that much of this support was cloned from asan (and then greatly simplified and renamed). For example the interactions with the sanitizer_common allocators, error handling, interception, etc.
The bulk of the memory profiling specific code can be found in the MemInfoBlock, MemInfoBlockCache, and related classes defined and used in memprof_allocator.cpp.
For now, the memory profile is dumped to text (stderr by default, but honors the sanitizer_common log_path flag). It is dumped in either a default verbose format, or an optional terse format.
This patch also adds a set of tests for the core functionality.
Differential Revision: https://reviews.llvm.org/D87120
show more ...
|