<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/TargetLoweringObjectFile.cpp, branch users/mingmingl-llvm/samplefdo-profile-format</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>[PseudoProbe] Support emitting to COFF object (#123870)</title>
<updated>2025-09-01T00:31:40+00:00</updated>
<author>
<name>Haohai Wen</name>
<email>haohai.wen@intel.com</email>
</author>
<published>2025-09-01T00:31:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2e122990391b2ba062e6308a12cfedf7206270ba'/>
<id>2e122990391b2ba062e6308a12cfedf7206270ba</id>
<content type='text'>
RFC:
https://discourse.llvm.org/t/rfc-support-pseudo-probe-for-windows-coff/83820
Support emitting pseudo probe to .pseudo_probe and .pseudo_probe_desc
COFF sections.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
RFC:
https://discourse.llvm.org/t/rfc-support-pseudo-probe-for-windows-coff/83820
Support emitting pseudo probe to .pseudo_probe and .pseudo_probe_desc
COFF sections.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Fix typo for CGProfile (NFC) (#153370)</title>
<updated>2025-08-18T08:46:27+00:00</updated>
<author>
<name>hstk30-hw</name>
<email>hanwei62@huawei.com</email>
</author>
<published>2025-08-18T08:46:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c99cbc880fb2bfa6dbddd8eedf42d63c32081cc0'/>
<id>c99cbc880fb2bfa6dbddd8eedf42d63c32081cc0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Extract pseudo probe using mdconst::extract (#148821)</title>
<updated>2025-07-15T13:05:52+00:00</updated>
<author>
<name>Haohai Wen</name>
<email>haohai.wen@intel.com</email>
</author>
<published>2025-07-15T13:05:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8226fbee4b6254bc3cd4806de623937262028883'/>
<id>8226fbee4b6254bc3cd4806de623937262028883</id>
<content type='text'>
mdconst::extract is more rigorous than mdconst::dyn_exract in this
context.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
mdconst::extract is more rigorous than mdconst::dyn_exract in this
context.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Hoist pseudo probe desc emission code for reuse (#148756)</title>
<updated>2025-07-15T09:48:04+00:00</updated>
<author>
<name>Haohai Wen</name>
<email>haohai.wen@intel.com</email>
</author>
<published>2025-07-15T09:48:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=148708493a80f9d75513f2e3721d043dd5b969a7'/>
<id>148708493a80f9d75513f2e3721d043dd5b969a7</id>
<content type='text'>
This PR is part of #123870.
The pseudo probe desc emission code can be reused by other target.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR is part of #123870.
The pseudo probe desc emission code can be reused by other target.</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen][StaticDataSplitter]Support constant pool partitioning (#129781)</title>
<updated>2025-03-30T05:07:56+00:00</updated>
<author>
<name>Mingming Liu</name>
<email>mingmingl@google.com</email>
</author>
<published>2025-03-30T05:07:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9747bb182f430bb1bd3525b7f42e88df626e28e5'/>
<id>9747bb182f430bb1bd3525b7f42e88df626e28e5</id>
<content type='text'>
This is a follow-up patch of
https://github.com/llvm/llvm-project/pull/125756

In this PR, static-data-splitter pass produces the aggregated profile
counts of constants for constant pools in a global state
(`StateDataProfileInfo`), and asm printer consumes the profile counts to
produce `.hot` or `.unlikely` prefixes.

This implementation covers both x86 and aarch64 asm printer.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a follow-up patch of
https://github.com/llvm/llvm-project/pull/125756

In this PR, static-data-splitter pass produces the aggregated profile
counts of constants for constant pools in a global state
(`StateDataProfileInfo`), and asm printer consumes the profile counts to
produce `.hot` or `.unlikely` prefixes.

This implementation covers both x86 and aarch64 asm printer.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm:ir] Add support for constant data exceeding 4GiB (#126481)</title>
<updated>2025-03-21T18:44:01+00:00</updated>
<author>
<name>pzzp</name>
<email>pzzp11@outlook.com</email>
</author>
<published>2025-03-21T18:44:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d6a2cca77e3c88755e0f6b0acefffdcfa5eb2fec'/>
<id>d6a2cca77e3c88755e0f6b0acefffdcfa5eb2fec</id>
<content type='text'>
The test file is over 4GiB, which is too big, so I didn’t submit it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test file is over 4GiB, which is too big, so I didn’t submit it.</pre>
</div>
</content>
</entry>
<entry>
<title>[MC] Remove unneeded VK_None argument from MCSymbolRefExpr::create. NFC</title>
<updated>2025-03-06T07:14:04+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-03-06T07:14:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fe56c4c01972edc51c415c4f410739bbec9f7d13'/>
<id>fe56c4c01972edc51c415c4f410739bbec9f7d13</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[AsmPrinter][ELF] Support profile-guided section prefix for jump tables' (read-only) data sections (#122215)</title>
<updated>2025-01-29T06:49:28+00:00</updated>
<author>
<name>Mingming Liu</name>
<email>mingmingl@google.com</email>
</author>
<published>2025-01-29T06:49:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3feb724496238ce10d32e8c2bd84b4ea50f9977e'/>
<id>3feb724496238ce10d32e8c2bd84b4ea50f9977e</id>
<content type='text'>
https://github.com/llvm/llvm-project/pull/122183 adds a codegen pass to
infer machine jump table entry's hotness from the MBB hotness. This is a
follow-up PR to produce `.hot` and or `.unlikely` section prefix for
jump table's (read-only) data sections in the relocatable `.o` files.

When this patch is enabled, linker will see {`.rodata`, `.rodata.hot`,
`.rodata.unlikely`} in input sections. It can map `.rodata.hot` and
`.rodata` in the input sections to `.rodata.hot` in the executable, and
map `.rodata.unlikely` into `.rodata` with a pending extension to
`--keep-text-section-prefix` like
https://github.com/llvm/llvm-project/commit/059e7cbb66a30ce35f3ee43197eed1a106b50c5b,
or with a linker script.

1. To partition hot and jump tables, the AsmPrinter pass slices a function's jump table indices into two groups, one for hot and the other for cold jump tables. It then emits hot jump tables into a `.hot`-prefixed data section and cold ones into a `.unlikely`-prefixed data section, retaining the relative order of `LJT&lt;N&gt;` labels within each group.

2. [ELF only] To have data sections with _dynamic_ names (e.g., `.rodata.hot[.func]`), we implement
`TargetLoweringObjectFile::getSectionForJumpTable` method that accepts a `MachineJumpTableEntry` parameter, and update `selectELFSectionForGlobal` to generate `.hot` or `.unlikely` based on
MJTE's hotness.
    - The dynamic JT section name doesn't depend on `-ffunction-section=true` or `-funique-section-names=true`, even though it leverages the similar underlying mechanism to have a MCSection with on-demand name as `-ffunction-section` does.

3. The new code path is off by default.
    - Typically, `TargetOptions` conveys clang or LLVM tools' options to code generation passes. To follow the pattern, add option `EnableStaticDataPartitioning` bit in `TargetOptions` and make it
readable through `TargetMachine`.
    - To enable the new code path in tools like `llc`, `partition-static-data-sections` option is introduced in
`CodeGen/CommandFlags.h/cpp`.
    -  A subsequent patch
([draft](https://github.com/llvm/llvm-project/commit/8f36a1374365862b3ca9be5615dd38f02a318c45)) will add a clang option to enable the new code path.

---------

Co-authored-by: Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/llvm/llvm-project/pull/122183 adds a codegen pass to
infer machine jump table entry's hotness from the MBB hotness. This is a
follow-up PR to produce `.hot` and or `.unlikely` section prefix for
jump table's (read-only) data sections in the relocatable `.o` files.

When this patch is enabled, linker will see {`.rodata`, `.rodata.hot`,
`.rodata.unlikely`} in input sections. It can map `.rodata.hot` and
`.rodata` in the input sections to `.rodata.hot` in the executable, and
map `.rodata.unlikely` into `.rodata` with a pending extension to
`--keep-text-section-prefix` like
https://github.com/llvm/llvm-project/commit/059e7cbb66a30ce35f3ee43197eed1a106b50c5b,
or with a linker script.

1. To partition hot and jump tables, the AsmPrinter pass slices a function's jump table indices into two groups, one for hot and the other for cold jump tables. It then emits hot jump tables into a `.hot`-prefixed data section and cold ones into a `.unlikely`-prefixed data section, retaining the relative order of `LJT&lt;N&gt;` labels within each group.

2. [ELF only] To have data sections with _dynamic_ names (e.g., `.rodata.hot[.func]`), we implement
`TargetLoweringObjectFile::getSectionForJumpTable` method that accepts a `MachineJumpTableEntry` parameter, and update `selectELFSectionForGlobal` to generate `.hot` or `.unlikely` based on
MJTE's hotness.
    - The dynamic JT section name doesn't depend on `-ffunction-section=true` or `-funique-section-names=true`, even though it leverages the similar underlying mechanism to have a MCSection with on-demand name as `-ffunction-section` does.

3. The new code path is off by default.
    - Typically, `TargetOptions` conveys clang or LLVM tools' options to code generation passes. To follow the pattern, add option `EnableStaticDataPartitioning` bit in `TargetOptions` and make it
readable through `TargetMachine`.
    - To enable the new code path in tools like `llc`, `partition-static-data-sections` option is introduced in
`CodeGen/CommandFlags.h/cpp`.
    -  A subsequent patch
([draft](https://github.com/llvm/llvm-project/commit/8f36a1374365862b3ca9be5615dd38f02a318c45)) will add a clang option to enable the new code path.

---------

Co-authored-by: Ellis Hoag &lt;ellis.sparky.hoag@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[PAC][ELF][AArch64] Support signed personality function pointer (#119361)</title>
<updated>2024-12-16T07:24:09+00:00</updated>
<author>
<name>Daniil Kovalev</name>
<email>dkovalev@accesssoftek.com</email>
</author>
<published>2024-12-16T07:24:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f65a21a4ecc2e712c700c59842b6b9a1d2a9a060'/>
<id>f65a21a4ecc2e712c700c59842b6b9a1d2a9a060</id>
<content type='text'>
Re-apply #113148 after revert in #119331

If function pointer signing is enabled, sign personality function
pointer stored in `.DW.ref.__gxx_personality_v0` section with IA key,
0x7EAD = `ptrauth_string_discriminator("personality")` constant
discriminator and address diversity enabled.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Re-apply #113148 after revert in #119331

If function pointer signing is enabled, sign personality function
pointer stored in `.DW.ref.__gxx_personality_v0` section with IA key,
0x7EAD = `ptrauth_string_discriminator("personality")` constant
discriminator and address diversity enabled.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[PAC][ELF][AArch64] Support signed personality function pointer" (#119331)</title>
<updated>2024-12-10T06:12:25+00:00</updated>
<author>
<name>Daniil Kovalev</name>
<email>dkovalev@accesssoftek.com</email>
</author>
<published>2024-12-10T06:12:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ef2e590e7b6fb5b0478e5e087006895a07d185c8'/>
<id>ef2e590e7b6fb5b0478e5e087006895a07d185c8</id>
<content type='text'>
Reverts llvm/llvm-project#113148

See buildbot failure
https://lab.llvm.org/buildbot/#/builders/190/builds/11048</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#113148

See buildbot failure
https://lab.llvm.org/buildbot/#/builders/190/builds/11048</pre>
</div>
</content>
</entry>
</feed>
