[all-commits] [llvm/llvm-project] 105ecd: [BOLT] Avoid EH trampolines for PIEs/DSOs (#117106)

Maksim Panchenko via All-commits all-commits at lists.llvm.org
Thu Nov 21 18:18:51 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 105ecd8bb2c90c874375100e61f85678a0f6e310
      https://github.com/llvm/llvm-project/commit/105ecd8bb2c90c874375100e61f85678a0f6e310
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-11-21 (Thu, 21 Nov 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/lib/Core/BinaryEmitter.cpp
    M bolt/lib/Passes/SplitFunctions.cpp
    A bolt/test/X86/pie-eh-split-undo.s
    M bolt/test/runtime/X86/Inputs/pie-exceptions-failed-split.s
    R bolt/test/runtime/X86/pie-exceptions-failed-split.test
    A bolt/test/runtime/X86/pie-exceptions-split.test

  Log Message:
  -----------
  [BOLT] Avoid EH trampolines for PIEs/DSOs (#117106)

We used to emit EH trampolines for PIE/DSO whenever a function fragment
contained a landing pad outside of it. However, it is common to have all
landing pads in a cold fragment even when their throwers are in a hot
one.

To reduce the number of trampolines, analyze landing pads for any given
function fragment, and if they all belong to the same (possibly
different) fragment, designate that fragment as a landing pad fragment
for the "thrower" fragment. Later, emit landing pad fragment symbol as
an LPStart for the thrower LSDA.



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