MMaksim Panchenko[BOLT] Fix instrumentation problem with floating point
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[BOLT] Fix EH trampoline backout code When SplitFunctions pass adds a trampoline code for exception landing pads (limited to shared objects), it may increase the size of the hot fragment making it larger than the whole function pre-split. When this happens, the pass reverts the splitting action by restoring the original block order and marking all blocks hot. However, if createEHTrampolines() added new blocks to the CFG and modified invoke instructions, simply restoring the original block layout will not suffice as the new CFG has more blocks. For proper backout of the split, modify the original layout by merging in trampoline blocks immediately before their matching targets. As a result, the number of blocks increases, but the number of instructions and the function size remains the same as pre-split. Add an assertion for the number of blocks when updating a function layout. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D128696 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT] Mark option values of --split-functions deprecated The SplitFunctions pass does not distinguish between various splitting modes anymore. This change updates the command line interface to reflect this behavior by deprecating values passed to the --split-function option. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D128558 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT] Fix instrumentation problem with floating point If BOLT instrumentation runtime uses XMM registers, it can interfere with the user program causing crashes and unexpected behavior. This happens as the instrumentation code preserves general purpose registers only. Build BOLT instrumentation runtime with "-mno-sse". Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D128960 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Split runtime tests into test/runtime folder Summary: Create bolt/test/runtime folder and move tests that execute the binary. Move lit.local.cfg with host_arch check to the corresponding folder. Addresses issue facebookincubator/BOLT#132. AArch64/tls.c shows a different behavior with clang hence marked as XFAIL TODO: add a check for non-exec tests for a corresponding LLVM_TARGETS_TO_BUILD. (cherry picked from FBD31132234) | 4 年前 | |
[BOLT] Fix EH trampoline backout code When SplitFunctions pass adds a trampoline code for exception landing pads (limited to shared objects), it may increase the size of the hot fragment making it larger than the whole function pre-split. When this happens, the pass reverts the splitting action by restoring the original block order and marking all blocks hot. However, if createEHTrampolines() added new blocks to the CFG and modified invoke instructions, simply restoring the original block layout will not suffice as the new CFG has more blocks. For proper backout of the split, modify the original layout by merging in trampoline blocks immediately before their matching targets. As a result, the number of blocks increases, but the number of instructions and the function size remains the same as pre-split. Add an assertion for the number of blocks when updating a function layout. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D128696 | 3 年前 | |
[BOLT] Mark option values of --split-functions deprecated The SplitFunctions pass does not distinguish between various splitting modes anymore. This change updates the command line interface to reflect this behavior by deprecating values passed to the --split-function option. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D128558 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Fix stack alignment in section-reloc-with-addend.s Misaligned stack can cause a runtime crash. Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D128227 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 | |
[BOLT][TEST] Use double dash flags in tests Replace a single dash with a double dash for options that have more than a single letter. llvm-bolt-wrapper.py has special treatment for output options such as "-o" and "-w" causing issues when a single dash is used, e.g. for "-write-dwp". The wrapper can be fixed as well, but using a double dash has other advantages as well. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127538 | 3 年前 |