<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/ObjectYAML/ELFEmitter.cpp, 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>[SHT_LLVM_BB_ADDR] Implement ELF and YAML support for Propeller CFG data in PGO analysis map. (#164914)</title>
<updated>2025-10-30T20:12:06+00:00</updated>
<author>
<name>Rahman Lavaee</name>
<email>rahmanl@google.com</email>
</author>
<published>2025-10-30T20:12:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e9368a056dff94815b3c43a0da78e7c1e5b3d4f4'/>
<id>e9368a056dff94815b3c43a0da78e7c1e5b3d4f4</id>
<content type='text'>
This PR implements the ELF support for PostLink CFG in PGO analysis map
as discussed in
[RFC](https://discourse.llvm.org/t/rfc-extending-the-pgo-analysis-map-with-propeller-cfg-frequencies/88617/2).

A later PR will implement the Codegen Support.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR implements the ELF support for PostLink CFG in PGO analysis map
as discussed in
[RFC](https://discourse.llvm.org/t/rfc-extending-the-pgo-analysis-map-with-propeller-cfg-frequencies/88617/2).

A later PR will implement the Codegen Support.</pre>
</div>
</content>
</entry>
<entry>
<title>Adding Matching and Inference Functionality to Propeller (#160706)</title>
<updated>2025-10-14T17:34:14+00:00</updated>
<author>
<name>wdx727</name>
<email>wdxpjpj@foxmail.com</email>
</author>
<published>2025-10-14T17:34:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5eeae08f7e05524c24a84b8c29304f673e845c0b'/>
<id>5eeae08f7e05524c24a84b8c29304f673e845c0b</id>
<content type='text'>
We have optimized the implementation of introducing the "matching and
inference" technique into Propeller. In this new implementation, we have
made every effort to avoid introducing new compilation parameters while
ensuring compatibility with Propeller's current usage. Instead of
creating a new profile format, we reused the existing one employed by
Propeller. This new implementation is fully compatible with Propeller's
current usage patterns and reduces the amount of code changes. For
detailed information, please refer to the following RFC:
https://discourse.llvm.org/t/rfc-adding-matching-and-inference-functionality-to-propeller/86238.
We plan to submit the relevant changes in several pull requests (PRs).
The current one is the first PR, which adds the basic block hash to the
SHT_LLVM_BB_ADDR_MAP section.

co-authors: lifengxiang1025 &lt;lifengxiang@kuaishou.com&gt;; zcfh
&lt;wuminghui03@kuaishou.com&gt;

Co-authored-by: lifengxiang1025 &lt;lifengxiang@kuaishou.com&gt;
Co-authored-by: zcfh &lt;wuminghui03@kuaishou.com&gt;
Co-authored-by: Rahman Lavaee &lt;rahmanl@google.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We have optimized the implementation of introducing the "matching and
inference" technique into Propeller. In this new implementation, we have
made every effort to avoid introducing new compilation parameters while
ensuring compatibility with Propeller's current usage. Instead of
creating a new profile format, we reused the existing one employed by
Propeller. This new implementation is fully compatible with Propeller's
current usage patterns and reduces the amount of code changes. For
detailed information, please refer to the following RFC:
https://discourse.llvm.org/t/rfc-adding-matching-and-inference-functionality-to-propeller/86238.
We plan to submit the relevant changes in several pull requests (PRs).
The current one is the first PR, which adds the basic block hash to the
SHT_LLVM_BB_ADDR_MAP section.

co-authors: lifengxiang1025 &lt;lifengxiang@kuaishou.com&gt;; zcfh
&lt;wuminghui03@kuaishou.com&gt;

Co-authored-by: lifengxiang1025 &lt;lifengxiang@kuaishou.com&gt;
Co-authored-by: zcfh &lt;wuminghui03@kuaishou.com&gt;
Co-authored-by: Rahman Lavaee &lt;rahmanl@google.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm][yaml2obj] Modify section header overriding timing (#130942)</title>
<updated>2025-09-18T07:37:50+00:00</updated>
<author>
<name>Ruoyu Qiu</name>
<email>cabbaken@outlook.com</email>
</author>
<published>2025-09-18T07:37:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c1fca0fa1408a2d2ea24fe43058e53c0d1df82ce'/>
<id>c1fca0fa1408a2d2ea24fe43058e53c0d1df82ce</id>
<content type='text'>
yaml2obj should determine the program header offset (and other
properties) based on the intended values rather than the final
`sh_offset` of the section header.

`setProgramHeaderLayout` uses section offsets for determining
`p_offset`. Move section header overriding after
`setProgramHeaderLayout` to prevent `ShOffset` from affecting program
header `p_offset`.

This change adjusts the timing of when the section header is overridden
to ensure that the program headers are set correctly.

More details
[here](https://github.com/llvm/llvm-project/pull/126537#issuecomment-2700421989).

---------

Signed-off-by: Ruoyu Qiu &lt;cabbaken@outlook.com&gt;
Signed-off-by: Ruoyu Qiu &lt;qiuruoyu@xiaomi.com&gt;
Co-authored-by: Ruoyu Qiu &lt;qiuruoyu@xiaomi.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
yaml2obj should determine the program header offset (and other
properties) based on the intended values rather than the final
`sh_offset` of the section header.

`setProgramHeaderLayout` uses section offsets for determining
`p_offset`. Move section header overriding after
`setProgramHeaderLayout` to prevent `ShOffset` from affecting program
header `p_offset`.

This change adjusts the timing of when the section header is overridden
to ensure that the program headers are set correctly.

More details
[here](https://github.com/llvm/llvm-project/pull/126537#issuecomment-2700421989).

---------

Signed-off-by: Ruoyu Qiu &lt;cabbaken@outlook.com&gt;
Signed-off-by: Ruoyu Qiu &lt;qiuruoyu@xiaomi.com&gt;
Co-authored-by: Ruoyu Qiu &lt;qiuruoyu@xiaomi.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[SHT_LLVM_BB_ADDR_MAP] Change the callsite feature to emit end of callsites. (#155041)</title>
<updated>2025-08-25T17:17:29+00:00</updated>
<author>
<name>Rahman Lavaee</name>
<email>rahmanl@google.com</email>
</author>
<published>2025-08-25T17:17:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a61ff1487b6696b9ab3bb7d9c2c1ea899eb7a4f0'/>
<id>a61ff1487b6696b9ab3bb7d9c2c1ea899eb7a4f0</id>
<content type='text'>
This PR simply moves the callsite anchors from the beginning of
callsites to their end.

Emitting the end of callsites is more sensible as it allows breaking the
basic block into subblocks which end with control transfer instructions.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR simply moves the callsite anchors from the beginning of
callsites to their end.

Emitting the end of callsites is more sensible as it allows breaking the
basic block into subblocks which end with control transfer instructions.</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply "Allow "[[FLAGS=&lt;none&gt;]]" value in the ELF Fileheader Flags field (#143845)" (#151094)</title>
<updated>2025-07-31T21:11:06+00:00</updated>
<author>
<name>Aakanksha Patil</name>
<email>41199349+aakanksha555@users.noreply.github.com</email>
</author>
<published>2025-07-31T21:11:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d6c85fc9abd64a309a7c88c39ab12b1201e516de'/>
<id>d6c85fc9abd64a309a7c88c39ab12b1201e516de</id>
<content type='text'>
This fixes the issues with 0b054e2

This reverts commit b80ce054206db223ec8c3cd55fad510c97afbc9f.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes the issues with 0b054e2

This reverts commit b80ce054206db223ec8c3cd55fad510c97afbc9f.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Allow "[[FLAGS=&lt;none&gt;]]" value in the ELF Fileheader Flags field (#143845)"</title>
<updated>2025-07-21T17:31:38+00:00</updated>
<author>
<name>Nico Weber</name>
<email>thakis@chromium.org</email>
</author>
<published>2025-07-21T17:31:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b80ce054206db223ec8c3cd55fad510c97afbc9f'/>
<id>b80ce054206db223ec8c3cd55fad510c97afbc9f</id>
<content type='text'>
This reverts commit 0b054e21f473e258fe0a886fea908fe8bb867bc8.
Breaks many tests, see comments on #143845.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 0b054e21f473e258fe0a886fea908fe8bb867bc8.
Breaks many tests, see comments on #143845.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow "[[FLAGS=&lt;none&gt;]]" value in the ELF Fileheader Flags field (#143845)</title>
<updated>2025-07-21T16:26:53+00:00</updated>
<author>
<name>Aakanksha Patil</name>
<email>41199349+aakanksha555@users.noreply.github.com</email>
</author>
<published>2025-07-21T16:26:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0b054e21f473e258fe0a886fea908fe8bb867bc8'/>
<id>0b054e21f473e258fe0a886fea908fe8bb867bc8</id>
<content type='text'>
https://github.com/llvm/llvm-project/pull/92066 will be dependent on
this change</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/llvm/llvm-project/pull/92066 will be dependent on
this change</pre>
</div>
</content>
</entry>
<entry>
<title>[SHT_LLVM_BB_ADDR_MAP] Encode and decode callsite offsets in a newly-introduced SHT_LLVM_BB_ADDR_MAP version. (#144426)</title>
<updated>2025-06-23T16:25:14+00:00</updated>
<author>
<name>Rahman Lavaee</name>
<email>rahmanl@google.com</email>
</author>
<published>2025-06-23T16:25:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8d7a8fcc3ab9f6d4c4a7e4312876fe94ed3d6c4f'/>
<id>8d7a8fcc3ab9f6d4c4a7e4312876fe94ed3d6c4f</id>
<content type='text'>
Recently, we have been looking at some optimizations targeting
individual calls. In particular, we plan to extend the address mapping
technique to map to individual callsites. For example, in this piece of
code for a basic blocks:

```
&lt;BB&gt;:
1200:    lea 0x1(%rcx), %rdx
1204:    callq foo
1209:    cmpq 0x10, %rdx
120d:    ja  L1
```

We want to emit 0x9 as the call site offset for `callq foo` (the offset
from the block entry to right after the call), so that we know if a
sampled address is before the call or after.

This PR implements the decode/encode/emit capability. The Codegen change
will be implemented in a later PR.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recently, we have been looking at some optimizations targeting
individual calls. In particular, we plan to extend the address mapping
technique to map to individual callsites. For example, in this piece of
code for a basic blocks:

```
&lt;BB&gt;:
1200:    lea 0x1(%rcx), %rdx
1204:    callq foo
1209:    cmpq 0x10, %rdx
120d:    ja  L1
```

We want to emit 0x9 as the call site offset for `callq foo` (the offset
from the block entry to right after the call), so that we know if a
sampled address is before the call or after.

This PR implements the decode/encode/emit capability. The Codegen change
will be implemented in a later PR.</pre>
</div>
</content>
</entry>
<entry>
<title>[ObjectYAML][NFC] Simplify ELFState&lt;ELFT&gt;::initProgramHeaders() (#123703)</title>
<updated>2025-01-21T22:17:45+00:00</updated>
<author>
<name>Igor Kudrin</name>
<email>ikudrin@accesssoftek.com</email>
</author>
<published>2025-01-21T22:17:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=af84ed8ae5c1a7af96fb745582244dd219e2e481'/>
<id>af84ed8ae5c1a7af96fb745582244dd219e2e481</id>
<content type='text'>
This removes unused variables and dead code in the method.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes unused variables and dead code in the method.</pre>
</div>
</content>
</entry>
<entry>
<title>[ObjectYAML][ELF] Report incorrect offset to generate notes (#118741)</title>
<updated>2024-12-23T21:21:35+00:00</updated>
<author>
<name>Igor Kudrin</name>
<email>ikudrin@accesssoftek.com</email>
</author>
<published>2024-12-23T21:21:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ba373096e8ac83a7136fc44bc4e71a7bc53417a6'/>
<id>ba373096e8ac83a7136fc44bc4e71a7bc53417a6</id>
<content type='text'>
All notes in the note section must be correctly aligned, including the
first. The tool should refuse to generate notes if the section offset is
incorrect in this respect.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All notes in the note section must be correctly aligned, including the
first. The tool should refuse to generate notes if the section offset is
incorrect in this respect.</pre>
</div>
</content>
</entry>
</feed>
