[all-commits] [llvm/llvm-project] def617: [BOLT] Emit empty FDE for injected functions
Amir Ayupov via All-commits
all-commits at lists.llvm.org
Thu Apr 11 01:38:19 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: def6174d2a7a5a66b3871d4ce5035a71e513e6ef
https://github.com/llvm/llvm-project/commit/def6174d2a7a5a66b3871d4ce5035a71e513e6ef
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-04-11 (Thu, 11 Apr 2024)
Changed paths:
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/test/X86/patch-entries.test
Log Message:
-----------
[BOLT] Emit empty FDE for injected functions
This fixes an issue where `PatchEntries` overwrites function body but
keeps CFI untouched. Existing FDEs thus become invalid. This doesn't
affect unwinding because patched functions are transparent from
EH/unwinding perspective, but it breaks BOLT during disassembling those
functions.
Emit empty FDE for injected functions (emitted to the same address as
.org functions) that take precedence over the original FDE.
This adds eh_frame overhead, but restores the ability to disassemble
.org functions. Note that the overhead is avoided in `-use-old-text`
mode.
Test Plan: updated bolt/test/X86/patch-entries.test
Reviewers: rafaelauler, maksfb, dcci, ayermolo
Reviewed By: maksfb, dcci
Pull Request: https://github.com/llvm/llvm-project/pull/87967
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list