#
687ce3de |
| 04-Nov-2022 |
Rafael Auler <rafaelauler@fb.com> |
[BOLT][Hugify] Fix apple builds
Fix placement of ifdefs in hugify.cpp after D129107 landed.
|
#
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 ...
|
#
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 ...
|
#
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)
|
#
cb8d701b |
| 16-Oct-2021 |
Vladislav Khmelevsky <vladislav.khmelevskyi@huawei.com> |
[PR] Disable instrumentation and hugify build for aarch64
Summary: This patch temporarily disables instrumentation and higufy build not for x86 platforms to be able to build llvm-bolt tool on aarch6
[PR] Disable instrumentation and hugify build for aarch64
Summary: This patch temporarily disables instrumentation and higufy build not for x86 platforms to be able to build llvm-bolt tool on aarch64.
Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei
(cherry picked from FBD31738306)
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)
|
#
da752c9c |
| 17-Mar-2021 |
Rafael Auler <rafaelauler@fb.com> |
Fix license for a few remaining files
Summary: As titled.
(cherry picked from FBD28112137)
|
#
bbd9d610 |
| 15-Oct-2020 |
Alexander Shaposhnikov <alexshap@fb.com> |
Add first bits to cross-compile the runtime for OSX
Summary: Add first bits to cross-compile the runtime for OSX.
(cherry picked from FBD24330977)
|
#
c6799a68 |
| 27-Jul-2020 |
Rafael Auler <rafaelauler@fb.com> |
[BOLT] Fix stack alignment for runtime lib
Summary: Right now, the SAVE_ALL sequence executed upon entry of both of our runtime libs (hugify and instrumentation) will cause the stack to not be align
[BOLT] Fix stack alignment for runtime lib
Summary: Right now, the SAVE_ALL sequence executed upon entry of both of our runtime libs (hugify and instrumentation) will cause the stack to not be aligned at a 16B boundary because it saves 15 8-byte regs. Change the code sequence to adjust for that. The compiler may generate code that assumes the stack is aligned by using movaps instructions, which will crash.
(cherry picked from FBD22744307)
show more ...
|
#
84eae1a4 |
| 02-Jul-2020 |
Xun Li <xun@fb.com> |
[Bolt] Improve coding style for runtime lib related code
Summary: Reading through the LLVM coding standard again, realized a few places where I didn't follow the standard when coding. Addressing the
[Bolt] Improve coding style for runtime lib related code
Summary: Reading through the LLVM coding standard again, realized a few places where I didn't follow the standard when coding. Addressing them: 1. prefer static functions over functions in unnamed namespace. 2. #include as little as possible in headers 3. Have vtable anchors.
(cherry picked from FBD22353046)
show more ...
|
#
9bd71615 |
| 02-May-2020 |
Xun Li <xun@fb.com> |
Adding automatic huge page support
Summary: This patch enables automated hugify for Bolt. When running Bolt against a binary with -hugify specified, Bolt will inject a call to a runtime library func
Adding automatic huge page support
Summary: This patch enables automated hugify for Bolt. When running Bolt against a binary with -hugify specified, Bolt will inject a call to a runtime library function at the entry of the binary. The runtime library calls madvise to map the hot code region into a 2M huge page. We support both new kernel with THP support and old kernels. For kernels with THP support we simply make a madvise call, while for old kernels, we first copy the code out, remap the memory with huge page, and then copy the code back. With this change, we no longer need to manually call into hugify_self and precompile it with --hot-text. Instead, we could simply combine --hugify option with existing optimizations, and at runtime it will automatically move hot code into 2M pages.
Some details around the changes made: 1. Add an command line option to support --hugify. --hugify will automatically turn on --hot-text to get the proper hot code symbols. However, running with both --hugify and --hot-text is not allowed, since --hot-text is used on binaries that has precompiled call to hugify_self, which contradicts with the purpose of --hugify. 2. Moved the common utility functions out of instr.cpp to common.h, which will also be used by hugify.cpp. Added a few new system calls definitions. 3. Added a new class that inherits RuntimeLibrary, and implemented the necessary emit and link logic for hugify. 4. Added a simple test for hugify.
(cherry picked from FBD21384529)
show more ...
|