<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/ProfileData/InstrProf.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>[InstrProf] Fix frontend generated function hash (#165358)</title>
<updated>2025-11-06T17:22:06+00:00</updated>
<author>
<name>Stephen Senran Zhang</name>
<email>zsrkmyn@gmail.com</email>
</author>
<published>2025-11-06T17:22:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5af27f8c208b4ba13f339801c9188cfc19cebdc0'/>
<id>5af27f8c208b4ba13f339801c9188cfc19cebdc0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Replace LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]] (NFC) (#163507)</title>
<updated>2025-10-15T13:54:14+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-10-15T13:54:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f2306b6304df4ed7dfdc4692034c23c5e21db8d9'/>
<id>f2306b6304df4ed7dfdc4692034c23c5e21db8d9</id>
<content type='text'>
This patch replaces LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]].  Note
that this patch adjusts the placement of [[maybe_unused]] to comply
with the C++17 language.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch replaces LLVM_ATTRIBUTE_UNUSED with [[maybe_unused]].  Note
that this patch adjusts the placement of [[maybe_unused]] to comply
with the C++17 language.</pre>
</div>
</content>
</entry>
<entry>
<title>[Support] Deprecate one form of support::endian::byte_swap (NFC) (#161045)</title>
<updated>2025-09-28T17:27:29+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-09-28T17:27:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9a5671efac31d91e3479c6ae6a0af6196100beb3'/>
<id>9a5671efac31d91e3479c6ae6a0af6196100beb3</id>
<content type='text'>
This is a follow-up to #156140 and #160979, which deprecated one form of
write and read, respectively.

We have two forms of byte_swap:

  template &lt;typename value_type&gt;
[[nodiscard]] inline value_type byte_swap(value_type value, endianness
endian)

  template &lt;typename value_type, endianness endian&gt;
  [[nodiscard]] inline value_type byte_swap(value_type value)

The difference is that endian is a function parameter in the former
but a template parameter in the latter.

This patch streamlines the code by migrating the use of the latter to
the former while deprecating the latter because the latter is just
forwarded to the former.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a follow-up to #156140 and #160979, which deprecated one form of
write and read, respectively.

We have two forms of byte_swap:

  template &lt;typename value_type&gt;
[[nodiscard]] inline value_type byte_swap(value_type value, endianness
endian)

  template &lt;typename value_type, endianness endian&gt;
  [[nodiscard]] inline value_type byte_swap(value_type value)

The difference is that endian is a function parameter in the former
but a template parameter in the latter.

This patch streamlines the code by migrating the use of the latter to
the former while deprecating the latter because the latter is just
forwarded to the former.</pre>
</div>
</content>
</entry>
<entry>
<title>[ProfileData] Fix typo in profile overlap message (NFC)</title>
<updated>2025-08-23T07:17:26+00:00</updated>
<author>
<name>Yi Kong</name>
<email>yikong@google.com</email>
</author>
<published>2025-08-23T07:15:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=74b19ef868662f9de95115c7fb3d2c2e0b47a8bf'/>
<id>74b19ef868662f9de95115c7fb3d2c2e0b47a8bf</id>
<content type='text'>
Corrects an "infomation" -&gt; "information" typo in the summary message
printed by `llvm-profdata overlap`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Corrects an "infomation" -&gt; "information" typo in the summary message
printed by `llvm-profdata overlap`.
</pre>
</div>
</content>
</entry>
<entry>
<title>[nfc][pgo] `const`-ify some APIs in `InstrProfSymtab` (#153284)</title>
<updated>2025-08-13T16:08:08+00:00</updated>
<author>
<name>Mircea Trofin</name>
<email>mtrofin@google.com</email>
</author>
<published>2025-08-13T16:08:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7efceca0797cb4b8aa8ab95bdfbf334825c6b5f0'/>
<id>7efceca0797cb4b8aa8ab95bdfbf334825c6b5f0</id>
<content type='text'>
The main reason some `const` - sounding APIs weren't const was because their state is lazily updated (ensuring ordering).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The main reason some `const` - sounding APIs weren't const was because their state is lazily updated (ensuring ordering).</pre>
</div>
</content>
</entry>
<entry>
<title>[ProfileData] Remove an unnecessary cast (NFC) (#152087)</title>
<updated>2025-08-05T14:39:14+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-08-05T14:39:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cf18e5e0f84b23f5dc410af5447ca03b62aaa12c'/>
<id>cf18e5e0f84b23f5dc410af5447ca03b62aaa12c</id>
<content type='text'>
new already returns ValueProfData *.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
new already returns ValueProfData *.</pre>
</div>
</content>
</entry>
<entry>
<title>[ProfileData] Use lambdas instead of std::bind (NFC) (#146625)</title>
<updated>2025-07-02T05:50:04+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-07-02T05:50:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b809d5e2ac8db8f1ec6e77cbc30fd5640426f82f'/>
<id>b809d5e2ac8db8f1ec6e77cbc30fd5640426f82f</id>
<content type='text'>
Lambdas are a lot shorter than std::bind here.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Lambdas are a lot shorter than std::bind here.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][PGO] Use constants rather than free strings for metadata labels (#145721)</title>
<updated>2025-06-25T23:20:10+00:00</updated>
<author>
<name>Mircea Trofin</name>
<email>mtrofin@google.com</email>
</author>
<published>2025-06-25T23:20:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=82cbd68504e6206ec40a5b41ea14aa6a4988e6fe'/>
<id>82cbd68504e6206ec40a5b41ea14aa6a4988e6fe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[StaticDataLayout][PGO] Add profile format for static data layout, and the classes to operate on the profiles. (#138170)</title>
<updated>2025-05-16T01:31:50+00:00</updated>
<author>
<name>Mingming Liu</name>
<email>mingmingl@google.com</email>
</author>
<published>2025-05-16T01:31:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f3f28323adbb9d01372d81b4c78ed94683e58757'/>
<id>f3f28323adbb9d01372d81b4c78ed94683e58757</id>
<content type='text'>
Context: For
https://discourse.llvm.org/t/rfc-profile-guided-static-data-partitioning/83744#p-336543-background-3,
we propose to profile memory loads and stores via hardware events,
symbolize the addresses of binary static data sections and feed the
profile back into compiler for data partitioning.

This change adds the profile format for static data layout, and the
classes to operate on it.

The profile and its format
1. Conceptually, a piece of data (call it a symbol) is represented by
its symbol name or its content hash. The former applies to majority of
data whose mangled name remains relatively stable over binary releases,
and the latter applies to string literals (with name patterns like
`.str.&lt;N&gt;[.llvm.&lt;hash&gt;]`.
- The symbols with samples are hot data. The number of hot symbols is
small relative to all symbols. The profile tracks its sampled counts and
locations. Sampled counts come from hardware events, and locations come
from debug information in the profiled binary. The symbols without
samples are cold data. The number of such cold symbols is large. The
profile tracks its representation (the name or content hash).
- Based on a preliminary study, debug information coverage for data
symbols is partial and best-effort. In the LLVM IR, global variables
with source code correspondence may or may not have debug information.
Therefore the location information is optional in the profiles.
2. The profile-and-compile cycle is similar to SamplePGO. Profiles are
sampled from production binaries, and used in next binary releases.
Known cold symbols and new hot symbols can both have zero sampled
counts, so the profile records known cold symbols to tell the two for
next compile.

In the profile's serialization format, strings are concatenated together
and compressed. Individual records stores the index.

A separate PR will connect this class to InstrProfReader/Writer via
MemProfReader/Writer.

---------

Co-authored-by: Kazu Hirata &lt;kazu@google.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Context: For
https://discourse.llvm.org/t/rfc-profile-guided-static-data-partitioning/83744#p-336543-background-3,
we propose to profile memory loads and stores via hardware events,
symbolize the addresses of binary static data sections and feed the
profile back into compiler for data partitioning.

This change adds the profile format for static data layout, and the
classes to operate on it.

The profile and its format
1. Conceptually, a piece of data (call it a symbol) is represented by
its symbol name or its content hash. The former applies to majority of
data whose mangled name remains relatively stable over binary releases,
and the latter applies to string literals (with name patterns like
`.str.&lt;N&gt;[.llvm.&lt;hash&gt;]`.
- The symbols with samples are hot data. The number of hot symbols is
small relative to all symbols. The profile tracks its sampled counts and
locations. Sampled counts come from hardware events, and locations come
from debug information in the profiled binary. The symbols without
samples are cold data. The number of such cold symbols is large. The
profile tracks its representation (the name or content hash).
- Based on a preliminary study, debug information coverage for data
symbols is partial and best-effort. In the LLVM IR, global variables
with source code correspondence may or may not have debug information.
Therefore the location information is optional in the profiles.
2. The profile-and-compile cycle is similar to SamplePGO. Profiles are
sampled from production binaries, and used in next binary releases.
Known cold symbols and new hot symbols can both have zero sampled
counts, so the profile records known cold symbols to tell the two for
next compile.

In the profile's serialization format, strings are concatenated together
and compressed. Individual records stores the index.

A separate PR will connect this class to InstrProfReader/Writer via
MemProfReader/Writer.

---------

Co-authored-by: Kazu Hirata &lt;kazu@google.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Remove unused local variables (NFC) (#138454)</title>
<updated>2025-05-04T16:38:16+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-05-04T16:38:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2f3067ed69098d9eefb92eda17649bf450641889'/>
<id>2f3067ed69098d9eefb92eda17649bf450641889</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
