[BOLT] Emit LSDA call sites for all fragments
authorFabian Parzefall <parzefall@fb.com>
Fri, 9 Sep 2022 00:10:27 +0000 (17:10 -0700)
committerFabian Parzefall <parzefall@fb.com>
Fri, 9 Sep 2022 00:10:29 +0000 (17:10 -0700)
commit3ac46f377a06f344705f334640c4e1d5eca4e9c0
tree0173e0fdaf59b6367b76a4a101e26c3005f25e28
parentae2b4da16664a684341aa611309cfd302afe5ffa
[BOLT] Emit LSDA call sites for all fragments

For exception handling, LSDA call sites have to be emitted for each
fragment individually. With this patch, call sites and respective LSDA
symbols are generated and associated with each fragment of their
function, such that they can be used by the emitter.

Reviewed By: maksfb

Differential Revision: https://reviews.llvm.org/D132052
bolt/include/bolt/Core/BinaryFunction.h
bolt/lib/Core/BinaryEmitter.cpp
bolt/lib/Core/BinaryFunction.cpp
bolt/lib/Core/Exceptions.cpp
bolt/lib/Passes/SplitFunctions.cpp
bolt/test/X86/fragmented-symbols.s [new file with mode: 0644]
bolt/test/runtime/X86/exceptions-pic.test
bolt/test/runtime/X86/rethrow.cpp [new file with mode: 0644]