<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/bolt, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[NFCI][bolt][test] Use AT&amp;T syntax explicitly (#167225)</title>
<updated>2025-11-19T07:41:13+00:00</updated>
<author>
<name>Raul Tambre</name>
<email>raul@tambre.ee</email>
</author>
<published>2025-11-19T07:41:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=58d9e476724ae347be4da1ecddc17fd133a1300b'/>
<id>58d9e476724ae347be4da1ecddc17fd133a1300b</id>
<content type='text'>
This enables building LLVM with `-mllvm -x86-asm-syntax=intel` in one's
Clang config files (i.e. a global preference for Intel syntax).

`-masm=att` is insufficient as it doesn't override a specification of `-mllvm -x86-asm-syntax`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This enables building LLVM with `-mllvm -x86-asm-syntax=intel` in one's
Clang config files (i.e. a global preference for Intel syntax).

`-masm=att` is insufficient as it doesn't override a specification of `-mllvm -x86-asm-syntax`.</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT][print] Add option '--print-only-file' (NFC) (#168023)</title>
<updated>2025-11-14T18:26:21+00:00</updated>
<author>
<name>YongKang Zhu</name>
<email>yongzhu@fb.com</email>
</author>
<published>2025-11-14T18:26:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ac6daa8181894e34b8cf8e5c3e065f64035fcd36'/>
<id>ac6daa8181894e34b8cf8e5c3e065f64035fcd36</id>
<content type='text'>
With this option we can pass to BOLT names of functions to be printed
through a file instead of specifying them all on command line.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With this option we can pass to BOLT names of functions to be printed
through a file instead of specifying them all on command line.</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT] Move call probe information to CallSiteInfo</title>
<updated>2025-11-11T19:55:36+00:00</updated>
<author>
<name>Amir Ayupov</name>
<email>aaupov@fb.com</email>
</author>
<published>2025-10-28T21:05:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4c3e0320a103b34d6d5570da69b2fed3d9694b12'/>
<id>4c3e0320a103b34d6d5570da69b2fed3d9694b12</id>
<content type='text'>
Pseudo probe matching (#100446) needs callee information for call probes.
Embed call probe information (probe id, inline tree node, indirect flag)
into CallSiteInfo. As a consequence:
- Remove call probes from PseudoProbeInfo to avoid duplication, making
  it only contain block probes.
- Probe grouping across inline tree nodes becomes more potent + allows
  to unambiguously elide block id 1 (common case).

Block mask (blx) encoding becomes a low-ROI optimization and will be
replaced by a more compact encoding leveraging simplified PseudoProbeInfo
in #166680.

The size increase is ~3% for an XL profile (461-&gt;475MB). Compact block
probe encoding shrinks it by ~6%.

Test Plan: updated pseudoprobe-decoding-{inline,noinline}.test

Reviewers: paschalis-mpeis, ayermolo, yota9, yozhu, rafaelauler, maksfb

Reviewed By: rafaelauler

Pull Request: https://github.com/llvm/llvm-project/pull/165490
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pseudo probe matching (#100446) needs callee information for call probes.
Embed call probe information (probe id, inline tree node, indirect flag)
into CallSiteInfo. As a consequence:
- Remove call probes from PseudoProbeInfo to avoid duplication, making
  it only contain block probes.
- Probe grouping across inline tree nodes becomes more potent + allows
  to unambiguously elide block id 1 (common case).

Block mask (blx) encoding becomes a low-ROI optimization and will be
replaced by a more compact encoding leveraging simplified PseudoProbeInfo
in #166680.

The size increase is ~3% for an XL profile (461-&gt;475MB). Compact block
probe encoding shrinks it by ~6%.

Test Plan: updated pseudoprobe-decoding-{inline,noinline}.test

Reviewers: paschalis-mpeis, ayermolo, yota9, yozhu, rafaelauler, maksfb

Reviewed By: rafaelauler

Pull Request: https://github.com/llvm/llvm-project/pull/165490
</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT][DWARF] Slice .debug_str from the DWP for each CU (#159540)</title>
<updated>2025-11-11T03:46:34+00:00</updated>
<author>
<name>Liu Ke</name>
<email>liuke.gehry@bytedance.com</email>
</author>
<published>2025-11-11T03:46:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dee0afa0484b356df0133b508578c438bd9ab897'/>
<id>dee0afa0484b356df0133b508578c438bd9ab897</id>
<content type='text'>
Slice .debug_str from the DWP for each CU using .debug_str_offsets and
emit it, instead of directly copying the global .debug_str, in order to
address the bloat issue of DWO after updates. (more details here -
#155766 )</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Slice .debug_str from the DWP for each CU using .debug_str_offsets and
emit it, instead of directly copying the global .debug_str, in order to
address the bloat issue of DWO after updates. (more details here -
#155766 )</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT][AArch64] Add more heuristics on epilogue determination (#167077)</title>
<updated>2025-11-10T17:50:44+00:00</updated>
<author>
<name>YongKang Zhu</name>
<email>yongzhu@fb.com</email>
</author>
<published>2025-11-10T17:50:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4cd16f2a0ccbcd3421a787260cf873353bf9292e'/>
<id>4cd16f2a0ccbcd3421a787260cf873353bf9292e</id>
<content type='text'>
Add more heuristics to check if a basic block is an AArch64 epilogue. We
assume instructions that load from stack or adjust stack pointer as
valid epilogue code sequence if and only if they immediately precede the
branch instruction that ends the basic block.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add more heuristics to check if a basic block is an AArch64 epilogue. We
assume instructions that load from stack or adjust stack pointer as
valid epilogue code sequence if and only if they immediately precede the
branch instruction that ends the basic block.</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT] Simplify RAState helpers (NFCI) (#162820)</title>
<updated>2025-11-10T15:45:39+00:00</updated>
<author>
<name>Gergely Bálint</name>
<email>gergely.balint@arm.com</email>
</author>
<published>2025-11-10T15:45:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cd68056d13adcdabc5f42a05eff142b2ababdfd9'/>
<id>cd68056d13adcdabc5f42a05eff142b2ababdfd9</id>
<content type='text'>
- unify isRAStateSigned and isRAStateUnsigned to a common getRAState,
- unify setRASigned and setRAUnsigned into setRAState(MCInst, bool),
- update users of these to match the new implementations.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- unify isRAStateSigned and isRAStateUnsigned to a common getRAState,
- unify setRASigned and setRAUnsigned into setRAState(MCInst, bool),
- update users of these to match the new implementations.</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT] Support restartable sequences in tcmalloc (#167195)</title>
<updated>2025-11-09T20:43:50+00:00</updated>
<author>
<name>Maksim Panchenko</name>
<email>maks@fb.com</email>
</author>
<published>2025-11-09T20:43:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f2c50f930540be5f8cb25b17aeaf4467c8b4ca6b'/>
<id>f2c50f930540be5f8cb25b17aeaf4467c8b4ca6b</id>
<content type='text'>
Add `RSeqRewriter` to detect code references from `__rseq_cs` section
and ignore function referenced from that section. Code references are
detected via relocations (static or dynamic).

Note that the abort handler is preceded by a 4-byte signature byte
sequence and we cannot relocate the handler without that the signature,
otherwise the application may crash. Thus we are ignoring the function,
i.e. making sure it's not separated from its signature.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add `RSeqRewriter` to detect code references from `__rseq_cs` section
and ignore function referenced from that section. Code references are
detected via relocations (static or dynamic).

Note that the abort handler is preceded by a 4-byte signature byte
sequence and we cannot relocate the handler without that the signature,
otherwise the application may crash. Thus we are ignoring the function,
i.e. making sure it's not separated from its signature.</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT] Use DenseMap::contains (NFC) (#167169)</title>
<updated>2025-11-08T22:44:40+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-08T22:44:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7b1a74cd7910d9ffd387e643a3e6de94ec1d9547'/>
<id>7b1a74cd7910d9ffd387e643a3e6de94ec1d9547</id>
<content type='text'>
Identified with readability-container-contains.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with readability-container-contains.</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT] Refactor tracking internals of BinaryFunction. NFCI (#167074)</title>
<updated>2025-11-08T08:31:03+00:00</updated>
<author>
<name>Maksim Panchenko</name>
<email>maks@fb.com</email>
</author>
<published>2025-11-08T08:31:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=af456dfa111bbfc54950fd56a95a446488add406'/>
<id>af456dfa111bbfc54950fd56a95a446488add406</id>
<content type='text'>
In addition to tracking offsets inside a `BinaryFunction` that are
referenced by data relocations, we need to track those relocations too.
Plus, we will need to map symbols referenced by such relocations back to
the containing function.

This change introduces `BinaryFunction::InternalRefDataRelocations` to
track the aforementioned relocations and expands
`BinaryContext::SymbolToFunctionMap` to include local/temp symbols
involved in relocation processing.

There is no functional change introduced that should affect the output.
Future PRs will use the new tracking capabilities.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In addition to tracking offsets inside a `BinaryFunction` that are
referenced by data relocations, we need to track those relocations too.
Plus, we will need to map symbols referenced by such relocations back to
the containing function.

This change introduces `BinaryFunction::InternalRefDataRelocations` to
track the aforementioned relocations and expands
`BinaryContext::SymbolToFunctionMap` to include local/temp symbols
involved in relocation processing.

There is no functional change introduced that should affect the output.
Future PRs will use the new tracking capabilities.</pre>
</div>
</content>
</entry>
<entry>
<title>[BOLT] Refactor undefined symbols handling. NFCI (#167075)</title>
<updated>2025-11-08T03:42:05+00:00</updated>
<author>
<name>Maksim Panchenko</name>
<email>maks@fb.com</email>
</author>
<published>2025-11-08T03:42:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7af2b56dd539bdec977801952481c7e585a672a5'/>
<id>7af2b56dd539bdec977801952481c7e585a672a5</id>
<content type='text'>
Remove internal undefined symbol tracking and instead rely on the
emission state of `MCSymbol` while processing data-to-code relocations.

Note that `CleanMCState` pass resets the state of all `MCSymbol`s prior
to code emission.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove internal undefined symbol tracking and instead rely on the
emission state of `MCSymbol` while processing data-to-code relocations.

Note that `CleanMCState` pass resets the state of all `MCSymbol`s prior
to code emission.</pre>
</div>
</content>
</entry>
</feed>
