[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