<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/CodeGen/CodeGenPGO.cpp, branch users/chapuni/cov/single/unify</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>[Coverage] Introduce the type `CounterPair` for RegionCounterMap. NFC. (#112724)</title>
<updated>2025-01-09T08:11:07+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2025-01-09T08:11:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=397ac44f623f891d8f05d6673a95984ac0a26671'/>
<id>397ac44f623f891d8f05d6673a95984ac0a26671</id>
<content type='text'>
`CounterPair` can hold `&lt;uint32_t, uint32_t&gt;` instead of current
`unsigned`, to hold also the counter number of SkipPath. For now, this
change provides the skeleton and only `CounterPair::Executed` is used.

Each counter number can have `None` to suppress emitting counter
increment. 2nd element `Skipped` is initialized as `None` by default,
since most `Stmt*` don't have a pair of counters.

This change also provides stubs for the verifier. I'll provide the impl
of verifier for `+Asserts` later.

`markStmtAsUsed(bool, Stmt*)` may be used to inform that other side
counter may not emitted.

`markStmtMaybeUsed(S)` may be used for the `Stmt` and its inner will be
excluded for emission in the case of skipping by constant folding. I put
it into places where I found.

`verifyCounterMap()` will check the coverage map and the counter map,
and can be used to report inconsistency.

These verifier methods shall be eliminated in `-Asserts`.


https://discourse.llvm.org/t/rfc-integrating-singlebytecoverage-with-branch-coverage/82492</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`CounterPair` can hold `&lt;uint32_t, uint32_t&gt;` instead of current
`unsigned`, to hold also the counter number of SkipPath. For now, this
change provides the skeleton and only `CounterPair::Executed` is used.

Each counter number can have `None` to suppress emitting counter
increment. 2nd element `Skipped` is initialized as `None` by default,
since most `Stmt*` don't have a pair of counters.

This change also provides stubs for the verifier. I'll provide the impl
of verifier for `+Asserts` later.

`markStmtAsUsed(bool, Stmt*)` may be used to inform that other side
counter may not emitted.

`markStmtMaybeUsed(S)` may be used for the `Stmt` and its inner will be
excluded for emission in the case of skipping by constant folding. I put
it into places where I found.

`verifyCounterMap()` will check the coverage map and the counter map,
and can be used to report inconsistency.

These verifier methods shall be eliminated in `-Asserts`.


https://discourse.llvm.org/t/rfc-integrating-singlebytecoverage-with-branch-coverage/82492</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen] Remove unused includes (NFC) (#116459)</title>
<updated>2024-11-16T15:37:13+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-11-16T15:37:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e8a6624325e0c628ec23e5f124f1d2002f138dd5'/>
<id>e8a6624325e0c628ec23e5f124f1d2002f138dd5</id>
<content type='text'>
Identified with misc-include-cleaner.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with misc-include-cleaner.</pre>
</div>
</content>
</entry>
<entry>
<title>clangCodeGen: Reformat and refactor. NFC.</title>
<updated>2024-10-03T08:56:19+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2024-10-02T12:02:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1cc3ffab4076ad727a2346b17b34486d848da9f6'/>
<id>1cc3ffab4076ad727a2346b17b34486d848da9f6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Don't call raw_string_ostream::flush() (NFC)</title>
<updated>2024-09-19T22:18:10+00:00</updated>
<author>
<name>Youngsuk Kim</name>
<email>youngsuk.kim@hpe.com</email>
</author>
<published>2024-09-19T22:00:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7db641af13670aa1f1ecd3106eda3ce447afd752'/>
<id>7db641af13670aa1f1ecd3106eda3ce447afd752</id>
<content type='text'>
Don't call raw_string_ostream::flush(), which is essentially a no-op.
As specified in the docs, raw_string_ostream is always unbuffered
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't call raw_string_ostream::flush(), which is essentially a no-op.
As specified in the docs, raw_string_ostream is always unbuffered
</pre>
</div>
</content>
</entry>
<entry>
<title>[PGO][OpenMP] Instrumentation for GPU devices (Revision of #76587) (#102691)</title>
<updated>2024-08-22T06:10:54+00:00</updated>
<author>
<name>Ethan Luis McDonough</name>
<email>ethanluismcdonough@gmail.com</email>
</author>
<published>2024-08-22T06:10:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fde2d23ee2a204050a210f2f7b290643a272f737'/>
<id>fde2d23ee2a204050a210f2f7b290643a272f737</id>
<content type='text'>
This pull request is a revised version of #76587. This pull request
fixes some build issues that were present in the previous version of
this change.

&gt; This pull request is the first part of an ongoing effort to extends
PGO instrumentation to GPU device code. This PR makes the following
changes:
&gt;
&gt; - Adds blank registration functions to device RTL
&gt; - Gives PGO globals protected visibility when targeting a supported
GPU
&gt; - Handles any addrspace casts for PGO calls
&gt; - Implements PGO global extraction in GPU plugins (currently only
dumps info)
&gt;
&gt; These changes can be tested by supplying `-fprofile-instrument=clang`
while targeting a GPU.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This pull request is a revised version of #76587. This pull request
fixes some build issues that were present in the previous version of
this change.

&gt; This pull request is the first part of an ongoing effort to extends
PGO instrumentation to GPU device code. This PR makes the following
changes:
&gt;
&gt; - Adds blank registration functions to device RTL
&gt; - Gives PGO globals protected visibility when targeting a supported
GPU
&gt; - Handles any addrspace casts for PGO calls
&gt; - Implements PGO global extraction in GPU plugins (currently only
dumps info)
&gt;
&gt; These changes can be tested by supplying `-fprofile-instrument=clang`
while targeting a GPU.</pre>
</div>
</content>
</entry>
<entry>
<title>[Coverage] Suppress covmap and profdata for system headers. (#97952)</title>
<updated>2024-07-10T08:11:12+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2024-07-10T08:11:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=da31b684a57cdc77ad4274fd7d8b47ee27dea6c6'/>
<id>da31b684a57cdc77ad4274fd7d8b47ee27dea6c6</id>
<content type='text'>
With `system-headers-coverage=false`, functions defined in system
headers were not instrumented but corresponding covmaps were emitted. It
caused wasting covmap and profraw.

This change improves:

- Reduce object size (due to reduced covmap)
- Reduce size of profraw (uninstrumented system headers occupied
counters)
- Smarter view of coverage report. Stubs of uninstrumented system
headers will be no longer seen.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With `system-headers-coverage=false`, functions defined in system
headers were not instrumented but corresponding covmaps were emitted. It
caused wasting covmap and profraw.

This change improves:

- Reduce object size (due to reduced covmap)
- Reduce size of profraw (uninstrumented system headers occupied
counters)
- Smarter view of coverage report. Stubs of uninstrumented system
headers will be no longer seen.</pre>
</div>
</content>
</entry>
<entry>
<title>Move `SystemHeadersCoverage` into `llvm::coverage` in CoverageMappingGen.h</title>
<updated>2024-07-09T13:21:20+00:00</updated>
<author>
<name>NAKAMURA Takumi</name>
<email>geek4civic@gmail.com</email>
</author>
<published>2024-07-07T10:05:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=48017579e523085bc3ee99004c36526333a3c8b3'/>
<id>48017579e523085bc3ee99004c36526333a3c8b3</id>
<content type='text'>
Part of #97952
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Part of #97952
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[PGO][OpenMP] Instrumentation for GPU devices (#76587)"</title>
<updated>2024-06-28T17:30:45+00:00</updated>
<author>
<name>Ethan Luis McDonough</name>
<email>ethanluismcdonough@gmail.com</email>
</author>
<published>2024-06-28T17:30:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2c8b912f630f9ec647a4870b9c5ee922c2ec1298'/>
<id>2c8b912f630f9ec647a4870b9c5ee922c2ec1298</id>
<content type='text'>
This reverts commit 5fd2af38e461445c583d7ffc2fe23858966eee76. It caused build issues and broke the buildbot.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 5fd2af38e461445c583d7ffc2fe23858966eee76. It caused build issues and broke the buildbot.
</pre>
</div>
</content>
</entry>
<entry>
<title>[PGO][OpenMP] Instrumentation for GPU devices (#76587)</title>
<updated>2024-06-28T15:42:19+00:00</updated>
<author>
<name>Ethan Luis McDonough</name>
<email>ethanluismcdonough@gmail.com</email>
</author>
<published>2024-06-28T15:42:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5fd2af38e461445c583d7ffc2fe23858966eee76'/>
<id>5fd2af38e461445c583d7ffc2fe23858966eee76</id>
<content type='text'>
This pull request is the first part of an ongoing effort to extends PGO
instrumentation to GPU device code. This PR makes the following changes:

- Adds blank registration functions to device RTL
- Gives PGO globals protected visibility when targeting a supported GPU
- Handles any addrspace casts for PGO calls
- Implements PGO global extraction in GPU plugins (currently only dumps
info)

These changes can be tested by supplying `-fprofile-instrument=clang`
while targeting a GPU.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This pull request is the first part of an ongoing effort to extends PGO
instrumentation to GPU device code. This PR makes the following changes:

- Adds blank registration functions to device RTL
- Gives PGO globals protected visibility when targeting a supported GPU
- Handles any addrspace casts for PGO calls
- Implements PGO global extraction in GPU plugins (currently only dumps
info)

These changes can be tested by supplying `-fprofile-instrument=clang`
while targeting a GPU.</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen] Remove extraneous ArrayRef (NFC) (#96085)</title>
<updated>2024-06-19T16:49:26+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-06-19T16:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=09f88da966c8117c3ee9780aaa4cbaa7f4f0da5c'/>
<id>09f88da966c8117c3ee9780aaa4cbaa7f4f0da5c</id>
<content type='text'>
A C array can be implicitly cast to ArrayRef.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A C array can be implicitly cast to ArrayRef.</pre>
</div>
</content>
</entry>
</feed>
