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 |
|
#
87e9c424 |
| 24-Aug-2023 |
Elvina Yakubova <elvina.yakubova@huawei.com> |
[BOLT][Instrumentation] AArch64 instrumentation support in runtime
This commit adds support for AArch64 in instrumentation runtime library, including AArch64 system calls. Also this commit divides s
[BOLT][Instrumentation] AArch64 instrumentation support in runtime
This commit adds support for AArch64 in instrumentation runtime library, including AArch64 system calls. Also this commit divides syscalls into target-specific files.
Reviewed By: rafauler, yota9
Differential Revision: https://reviews.llvm.org/D151942
show more ...
|
Revision tags: llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
a86dd9ae |
| 29-Jun-2023 |
Denis Revunov <revunov.denis@huawei-partners.com> |
[BOLT][Instrumentation] Fix indirect call profile in PIE
Because indirect call tables use static addresses for call sites, but pc values recorded by runtime may be subject to ASLR in PIE, we couldn'
[BOLT][Instrumentation] Fix indirect call profile in PIE
Because indirect call tables use static addresses for call sites, but pc values recorded by runtime may be subject to ASLR in PIE, we couldn't find indirect call descriptions by their runtime address in PIE. It resulted in [unknown] entries in profile for all indirect calls. We need to substract base address of .text from runtime addresses to get the corresponding static addresses. Here we create a getter for base address of .text and substract it's return value from recorded PC values. It converts them to static addresses, which then may be used to find the corresponding indirect call descriptions.
Reviewed By: rafauler
Differential Revision: https://reviews.llvm.org/D154121
show more ...
|
#
a7992981 |
| 04-Jul-2023 |
Denis Revunov <revunov.denis@huawei-partners.com> |
[BOLT][Instrumentation] Keep profile open in WatchProcess
When a binary is instrumented with --instrumentation-sleep-time and instrumentation-wait-forks options and lauched, the profile is periodica
[BOLT][Instrumentation] Keep profile open in WatchProcess
When a binary is instrumented with --instrumentation-sleep-time and instrumentation-wait-forks options and lauched, the profile is periodically written until all the forks die. The problem is that we cannot wait for the whole process tree, and we have no way to tell when it's safe to read the profile. Hovewer, if we keep profile open throughout the life of the process tree, we can use fuser to determine when writing is finished.
Reviewed By: rafauler
Differential Revision: https://reviews.llvm.org/D154436
show more ...
|
#
60bbddf3 |
| 04-Jul-2023 |
Denis Revunov <revunov.denis@huawei-partners.com> |
[BOLT][Instrumentation][NFC] Define and use more syscall constants
Reviewed By: Amir
Differential Revision: https://reviews.llvm.org/D154419
|
#
8b23a853 |
| 29-Jun-2023 |
Denis Revunov <revunov.denis@huawei-partners.com> |
Reland [BOLT][Instrumentation][NFC] define and use mmap flags
Reviewed By: rafauler, Amir Differential Revision: https://reviews.llvm.org/D154056
|
#
3e13b299 |
| 30-Jun-2023 |
Amir Aupov <amir.aupov@gmail.com> |
Revert "[BOLT][Instrumentation][NFC] define and use mmap flags"
This reverts commit f0b45fba4b64ab0b5d6c50d978e02f0d12d4d070.
The stack broke https://lab.llvm.org/buildbot/#/builders/252.
|
#
47934c11 |
| 20-Jun-2023 |
Denis Revunov <revunov.denis@huawei-partners.com> |
[BOLT][Instrumentation] Add dumping function to instrumentation hash tables
Since there are no other means to debug the instrumentation library other than using stdout, having a function to print ha
[BOLT][Instrumentation] Add dumping function to instrumentation hash tables
Since there are no other means to debug the instrumentation library other than using stdout, having a function to print hash table entries is very useful.
Reviewed By: rafauler, Amir Differential Revision: https://reviews.llvm.org/D153771
show more ...
|
#
f0b45fba |
| 29-Jun-2023 |
Denis Revunov <revunov.denis@huawei-partners.com> |
[BOLT][Instrumentation][NFC] define and use mmap flags
Reviewed By: rafauler, Amir Differential Revision: https://reviews.llvm.org/D154056
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3 |
|
#
1c3653df |
| 19-Apr-2023 |
Nathan Sidwell <nathan@acm.org> |
[BOLT] Robustify compile-time config check
The BOLT runtime is specifically hard coded for x86_64 linux or x86_64 darwin. (Using x86_64 syscalls, hardcoding syscall numbers.)
Make it very clear thi
[BOLT] Robustify compile-time config check
The BOLT runtime is specifically hard coded for x86_64 linux or x86_64 darwin. (Using x86_64 syscalls, hardcoding syscall numbers.)
Make it very clear this is for those specific pair of systems.
Reviewed By: rafauler
Differential Revision: https://reviews.llvm.org/D148825
show more ...
|
Revision tags: 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, 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 |
|
#
1fb18619 |
| 27-Jun-2022 |
Alexey Moksyakov <alexey.moksyakov@huawei.com> |
adds huge pages support of PIE/no-PIE binaries
This patch adds the huge pages support (-hugify) for PIE/no-PIE binaries. Also returned functionality to support the kernels < 5.10 where there is a pr
adds huge pages support of PIE/no-PIE binaries
This patch adds the huge pages support (-hugify) for PIE/no-PIE binaries. Also returned functionality to support the kernels < 5.10 where there is a problem in a dynamic loader with the alignment of pages addresses.
Differential Revision: https://reviews.llvm.org/D129107
show more ...
|
#
e10e120c |
| 07-Jul-2022 |
Vladislav Khmelevsky <och95@yandex.ru> |
[BOLT][Runtime] Fix memset definition
Differential Revision: https://reviews.llvm.org/D129321
|
#
ea2182fe |
| 06-Jul-2022 |
Maksim Panchenko <maks@fb.com> |
[BOLT] Add runtime functions required by freestanding environment
Compiler can generate calls to some functions implicitly, even under constraints of freestanding environment. Make sure these functi
[BOLT] Add runtime functions required by freestanding environment
Compiler can generate calls to some functions implicitly, even under constraints of freestanding environment. Make sure these functions are available in our runtime objects.
Fixes test failures on some systems after https://reviews.llvm.org/D128960.
Reviewed By: yota9
Differential Revision: https://reviews.llvm.org/D129168
show more ...
|
#
35155a07 |
| 06-Jul-2022 |
Elvina Yakubova <elvina.yakubova@huawei.com> |
[BOLT] Change mutex implementation
Changed acquire implemetaion to __atomic_test_and_set() and release to __atomic_clear() so it eliminates inline asm usage and is arch independent.
Elvina Yakubova
[BOLT] Change mutex implementation
Changed acquire implemetaion to __atomic_test_and_set() and release to __atomic_clear() so it eliminates inline asm usage and is arch independent.
Elvina Yakubova, Advanced Software Technology Lab, Huawei
Reviewers: yota9, maksfb, rafauler
Differential Revision: https://reviews.llvm.org/D129162
show more ...
|
Revision tags: 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 |
|
#
823ebcc7 |
| 04-Feb-2022 |
Vladislav Khmelevsky <och95@yandex.ru> |
[BOLT] Fix runtime osx cross-compile build
Place include elf.h under !apple condition
Differential Revision: https://reviews.llvm.org/D119038
|
Revision tags: llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
#
4c106cfd |
| 11-Jan-2022 |
Maksim Panchenko <maks@fb.com> |
Merge BOLT into LLVM monorepo
Details of the merge are available at llvm-dev.
Mailing-list: https://lists.llvm.org/pipermail/llvm-dev/2022-January/154638.html [llvm-dev] Preparing BOLT for LLVM mon
Merge BOLT into LLVM monorepo
Details of the merge are available at llvm-dev.
Mailing-list: https://lists.llvm.org/pipermail/llvm-dev/2022-January/154638.html [llvm-dev] Preparing BOLT for LLVM monorepo
Co-authored-by: Rafael Auler <rafaelauler@fb.com>
show more ...
|
#
883bf0e8 |
| 29-Dec-2021 |
Amir Ayupov <aaupov@fb.com> |
[BOLT][NFC] Fix braces usage in the rest of the codebase
Summary: Refactor remaining bolt sources to follow the braces rule for if/else/loop from [LLVM Coding Standards](https://llvm.org/docs/Coding
[BOLT][NFC] Fix braces usage in the rest of the codebase
Summary: Refactor remaining bolt sources to follow the braces rule for if/else/loop from [LLVM Coding Standards](https://llvm.org/docs/CodingStandards.html).
(cherry picked from FBD33345885)
show more ...
|
#
2f09f445 |
| 21-Dec-2021 |
Maksim Panchenko <maks@fb.com> |
[BOLT][NFC] Fix file-description comments
Summary: Fix comments at the start of source files.
(cherry picked from FBD33274597)
|
Revision tags: llvmorg-13.0.1-rc1 |
|
#
dcdd37fd |
| 15-Oct-2021 |
Vladislav Khmelevsky <vladislav.khmelevskyi@huawei.com> |
[PR] Instrumentation: Sync file on dump
Summary: Sync the file with storage device on data dump to stabilize instrumentation testing
Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei
[PR] Instrumentation: Sync file on dump
Summary: Sync the file with storage device on data dump to stabilize instrumentation testing
Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei
(cherry picked from FBD31738021)
show more ...
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2 |
|
#
9aa134dc |
| 07-Aug-2021 |
Vasily Leonenko <vasily.leonenko@huawei.com> |
[PR] Instrumentation: use TryLock for SimpleHashTable getter
Summary: This commit introduces TryLock usage for SimpleHashTable getter to avoid deadlock and relax syscalls usage which causes signific
[PR] Instrumentation: use TryLock for SimpleHashTable getter
Summary: This commit introduces TryLock usage for SimpleHashTable getter to avoid deadlock and relax syscalls usage which causes significant overhead in runtime. The old behavior left under -conservative-instrumentation option passed to instrumentation library. Also, this commit includes a corresponding test case: instrumentation of executable which performs indirect calls from common code and signal handler.
Note: in case if TryLock was failed to acquire the lock - this indirect call will not be accounted in the resulting profile.
Vasily Leonenko, Advanced Software Technology Lab, Huawei
(cherry picked from FBD30821949)
show more ...
|
Revision tags: 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 |
|
#
2ffd6e2b |
| 18-Jan-2021 |
Elvina Yakubova <elvina.yakubova@huawei.com> |
[PR] Instrumentation: Add support for opening libs based on links /proc/self/map_files
Summary: This commit adds support for opening libs based on links /proc/self/map_files. For this we're getting
[PR] Instrumentation: Add support for opening libs based on links /proc/self/map_files
Summary: This commit adds support for opening libs based on links /proc/self/map_files. For this we're getting current virtual address and searching the lib in the directory with such address range. After that, we're getting full path to the binary by using readlink function. Direct read from link in /proc/self/map_files entries is not possible because of lack of permissions.
Elvina Yakubova, Advanced Software Technology Lab, Huawei
(cherry picked from FBD30092422)
show more ...
|
#
6665c628 |
| 18-Jan-2021 |
Elvina Yakubova <elvina.yakubova@huawei.com> |
[PR] Instrumentation: Add readlink and getdents support
Summary: This commit adds support for getting directory entries and reading value of a symbolic link in instrumentation runtime library
Elvin
[PR] Instrumentation: Add readlink and getdents support
Summary: This commit adds support for getting directory entries and reading value of a symbolic link in instrumentation runtime library
Elvina Yakubova, Advanced Software Technology Lab, Huawei
(cherry picked from FBD30092362)
show more ...
|
#
2cf9008a |
| 04-Jun-2021 |
Vladislav Khmelevsky <Vladislav.Khmelevskyi@huawei.com> |
[PR] Instrumentation: Disable signals on mutex lock
Summary: When indirect call is instrmented it locks SimpleHashTable's mutex on get() call. If while locked we we receive a signal and signal handl
[PR] Instrumentation: Disable signals on mutex lock
Summary: When indirect call is instrmented it locks SimpleHashTable's mutex on get() call. If while locked we we receive a signal and signal handler also will call indirect function we will end up with deadlock.
PR facebookincubator/BOLT#167
Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei
(cherry picked from FBD28909921)
show more ...
|
#
2da5b12a |
| 03-Jun-2021 |
Amir Ayupov <aaupov@fb.com> |
[BOLT] Hugify: check for THP support via sysfs
Summary: Remove dependence on kernel version check, query sysfs directly instead.
(cherry picked from FBD28858208)
|
#
76d346ca |
| 10-Mar-2021 |
Vladislav Khmelevsky <Vladislav.Khmelevskyi@huawei.com> |
[BOLT][PR] Instrumentation: Introduce -no-counters-clear and -wait-forks options
Summary: This PR introduces 2 new instrumentation options: 1. instrumentation-no-counters-clear: Discussed at https:/
[BOLT][PR] Instrumentation: Introduce -no-counters-clear and -wait-forks options
Summary: This PR introduces 2 new instrumentation options: 1. instrumentation-no-counters-clear: Discussed at https://github.com/facebookincubator/BOLT/issues/121 2. instrumentation-wait-forks: Since the instrumentation counters are mapped as MAP_SHARED it will be nice to add ability to wait until all forks of the parent process will die using tracking of process group. The last patch is just emitBinary code refactor. Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei
Pull Request resolved: https://github.com/facebookincubator/BOLT/pull/125 GitHub Author: Vladislav Khmelevskyi <Vladislav.Khmelevskyi@huawei.com>
(cherry picked from FBD26919011)
show more ...
|
#
a0dd5b05 |
| 28-Jan-2021 |
Alexander Shaposhnikov <alexshap@fb.com> |
[BOLT] Add support for dumping profile on MacOS
Summary: Add support for dumping profile on MacOS.
(cherry picked from FBD25751363)
|