[all-commits] [llvm/llvm-project] 066dd9: [BOLT] Offset LPStart to avoid unnecessary instruc...
Maksim Panchenko via All-commits
all-commits at lists.llvm.org
Tue Nov 19 16:45:25 PST 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 066dd91ad8c5d80bf7a301cd9d77aa8267cd4dcd
https://github.com/llvm/llvm-project/commit/066dd91ad8c5d80bf7a301cd9d77aa8267cd4dcd
Author: Maksim Panchenko <maks at fb.com>
Date: 2024-11-19 (Tue, 19 Nov 2024)
Changed paths:
M bolt/lib/Core/BinaryEmitter.cpp
Log Message:
-----------
[BOLT] Offset LPStart to avoid unnecessary instructions (#116713)
For C++ exception handling, when we write a call site table, we must
avoid emitting 0-value offsets for landing pads unless the call site has
no landing pad. However, 0 can be a real offset from the start of the
FDE if the FDE corresponds to a function fragment that starts with a
landing pad. In such cases, we used to emit a trap instruction at the
start of the fragment to guarantee non-zero LP offset.
To avoid emitting unnecessary trap instructions, we can instead set
LPStart to an offset from the FDE. If we emit it as [FDEStart - 1], then
all real offsets from LPStart in FDE become non-negative.
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