[PATCH] D130663: [BOLT] Update sibling relationship from LSDA Section

Huan Nguyen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 27 13:25:23 PDT 2022


nhuhuan created this revision.
Herald added subscribers: ayermolo, yaxunl.
Herald added a reviewer: rafauler.
Herald added a reviewer: Amir.
Herald added a reviewer: maksfb.
Herald added a project: All.
nhuhuan requested review of this revision.
Herald added subscribers: llvm-commits, yota9.
Herald added a project: LLVM.

LSDA Section is encoded in an unambiguous manner, allows accurate
reconstruction of landing pads. By definition, split landing pads
must target same function. If a function is splitted, split landing
pads indicate that the target function is a sibling fragment.

When processing stripped binaries, BOLT leverages this information
to support split jump table analysis. For that, sibling inference
needs to run before branch target analysis.

In this update, sibling validation/inference is decoupled from other
tasks, e.g., register labels for landing pads, and is placed before
branch target analysis. This also requires decoupled getting LSDA
Address from processing other CFI Info.

Test Plan:

  ninja check-bolt


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D130663

Files:
  bolt/include/bolt/Core/BinaryFunction.h
  bolt/include/bolt/Core/Exceptions.h
  bolt/lib/Core/Exceptions.cpp
  bolt/lib/Rewrite/RewriteInstance.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D130663.448144.patch
Type: text/x-patch
Size: 15070 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220727/b591a3c4/attachment.bin>


More information about the llvm-commits mailing list