[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization

Amir Aupov via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 12 11:44:14 PDT 2021


Since the last update, we’ve finished switching our GitHub repo to the
rebased branch (https://github.com/facebookincubator/BOLT/tree/rebased).
BOLT repository is now closely tracking the main branch of LLVM, lagging by
a couple of months at most. We’ve also brought up an open-source testing
environment based on GitHub Actions and Docker.
We’ve addressed the concrete issues pointed out by Fangrui Song and are
welcome to new questions and suggestions.
Overall, we’re seeing an increased interest in BOLT from the community on
GitHub and social media, specifically highlighting the collaboration with
the Huawei Moscow team working on adding Golang support.

Currently we’re working on two major areas in preparation for the actual
integration.

   1. Testing is an important part of the migration as we plan on
   converting internal tests to public ones. We’ve made a lot of progress in
   improving debug info testing coverage and qualifying BOLT to be ready for
   release, which currently stays internal. The strategy is to focus on
   growing our open-source testing when adding new changes.
   2. Aligning the changes made to LLVM libraries with the upstream
   repository, either by publishing our patches or refactoring BOLT to avoid
   them. (The rest of our changes are contained in bolt top-level directory).

To give you a sense of our progress, at the beginning of the upstreaming
process, we identified 23 such changes, of which 16 are resolved and 7 are
currently WIP or TBD:

   1. [MC] Alignment for Macro-op Fusion (https://reviews.llvm.org/D97982):
   review in progress
   2. [MC] TrapFillValue (https://reviews.llvm.org/D102287): TBD, plan is
   to reimplement in BOLT, easy
   3. [MC] TAILJMP encoding (
   https://reviews.llvm.org/D102297?vs=on&id=344627#toc): WIP by Amir,
   reimplement in BOLT, medium
   4. [DWARF] Support DWARF expressions in CFI instructions (
   https://reviews.llvm.org/D98301): WIP by Rafael, upstream, hard
   5. [DWARF] Extend DWARFAbbreviationDeclaration::AttributeSpec with
   AttrOffset and FormOffset (https://reviews.llvm.org/D102291): TBD,
   perhaps reimplement, medium
   6. [DWARF] Support emitting AdvanceLineAddrAbs (
   https://reviews.llvm.org/D105747): TBD, perhaps upstream, hard
   7. [DWARF] Introduce RefHandler to parse external refs in frame data (
   https://reviews.llvm.org/D105746): TBD, perhaps reimplement, medium

-Amir

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210712/cc4b3ffd/attachment.html>


More information about the llvm-dev mailing list