<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/NVPTX/NVVMReflect.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>NVPTX: Avoid getNumUses (#136351)</title>
<updated>2025-04-18T21:19:52+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2025-04-18T21:19:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5dcfa6146f8f44b0ba9937a37c612d54be6f95e7'/>
<id>5dcfa6146f8f44b0ba9937a37c612d54be6f95e7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NVPTX] Remove extraneous initializeNVVMReflectLegacyPassPass declaration (#135825)</title>
<updated>2025-04-16T15:02:34+00:00</updated>
<author>
<name>Yonah Goldberg</name>
<email>ygoldberg@nvidia.com</email>
</author>
<published>2025-04-16T15:02:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ef1abbe32e66c16118ded6dd9f7b1a55dea8c2b6'/>
<id>ef1abbe32e66c16118ded6dd9f7b1a55dea8c2b6</id>
<content type='text'>
This was already declared in NVPTX.h and I accidentally added it back in
#134416.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was already declared in NVPTX.h and I accidentally added it back in
#134416.</pre>
</div>
</content>
</entry>
<entry>
<title>[NVPTX] Improve NVVMReflect Efficiency (#134416)</title>
<updated>2025-04-11T01:33:37+00:00</updated>
<author>
<name>Yonah Goldberg</name>
<email>ygoldberg@nvidia.com</email>
</author>
<published>2025-04-11T01:33:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=701d726ef09ea89909df9bd2fdc63c63758fe8d6'/>
<id>701d726ef09ea89909df9bd2fdc63c63758fe8d6</id>
<content type='text'>
The NVVMReflect pass simply replaces calls to nvvm-reflect functions
with the appropriate constant, either the architecture number, or
nvvm-reflect-ftz, found in the module's metadata.

The implementation is inefficient and does this by traversing through
all instructions to find calls. The common case is that you never call
nvvm-reflect, so this traversal is costly.

This PR:
- Updates the pass so that it finds the reflect functions by name, and
then traverses through their uses to find the calls directly.
- Adds a line (245) to make sure the dead nvvm-reflect definitions are
erased.
- Adds the ability to set reflect values via command line</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The NVVMReflect pass simply replaces calls to nvvm-reflect functions
with the appropriate constant, either the architecture number, or
nvvm-reflect-ftz, found in the module's metadata.

The implementation is inefficient and does this by traversing through
all instructions to find calls. The common case is that you never call
nvvm-reflect, so this traversal is costly.

This PR:
- Updates the pass so that it finds the reflect functions by name, and
then traverses through their uses to find the calls directly.
- Adds a line (245) to make sure the dead nvvm-reflect definitions are
erased.
- Adds the ability to set reflect values via command line</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][LLVM][NVPTX] Cleanup pass initialization for NVPTX (#134311)</title>
<updated>2025-04-07T15:54:44+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-04-07T15:54:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7fe6e70e7c19a0f5309f1eb1b84f9094189ebff7'/>
<id>7fe6e70e7c19a0f5309f1eb1b84f9094189ebff7</id>
<content type='text'>
- Move all pass initialization function calls to NVPTX target
initialization and out of individual pass constructors.
- Move all pass initialization function declaration to NVPTX.h.
- https://github.com/llvm/llvm-project/issues/111767</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Move all pass initialization function calls to NVPTX target
initialization and out of individual pass constructors.
- Move all pass initialization function declaration to NVPTX.h.
- https://github.com/llvm/llvm-project/issues/111767</pre>
</div>
</content>
</entry>
<entry>
<title>[CUDA] Add missing zero initializer for reflect</title>
<updated>2025-01-21T22:51:29+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-01-21T22:51:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=01045b75a16cfc6905ac38495e262a7da7183ef9'/>
<id>01045b75a16cfc6905ac38495e262a7da7183ef9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NVPTX] Fix failing test and incorrect `mcpu` reading in reflect</title>
<updated>2025-01-21T19:25:04+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-01-21T19:24:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cdb4da32dbc362dc03125e965bf9847604856b31'/>
<id>cdb4da32dbc362dc03125e965bf9847604856b31</id>
<content type='text'>
Summary:
Test uses nvptx in 32-bit mode and calling `mcpu` is broken and caused
asan failures.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
Test uses nvptx in 32-bit mode and calling `mcpu` is broken and caused
asan failures.
</pre>
</div>
</content>
</entry>
<entry>
<title>[NVPTX] Fix a warning</title>
<updated>2025-01-07T20:55:16+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-01-07T20:55:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e7a83fc74db78445c36a27f113e9b045f90f699a'/>
<id>e7a83fc74db78445c36a27f113e9b045f90f699a</id>
<content type='text'>
This patch fixes:

  llvm/lib/Target/NVPTX/NVVMReflect.cpp:225:18: error: object backing
  the pointer will be destroyed at the end of the full-expression
  [-Werror,-Wdangling-gsl]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes:

  llvm/lib/Target/NVPTX/NVVMReflect.cpp:225:18: error: object backing
  the pointer will be destroyed at the end of the full-expression
  [-Werror,-Wdangling-gsl]
</pre>
</div>
</content>
</entry>
<entry>
<title>[NVPTX] Do not run the NVVMReflect pass as part of the normal pipeline (#121834)</title>
<updated>2025-01-07T20:45:03+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-01-07T20:45:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=29b5c18e466cea867e9e785e650d9ec2e5c295b9'/>
<id>29b5c18e466cea867e9e785e650d9ec2e5c295b9</id>
<content type='text'>
Summary:
This pass lowers the `__nvvm_reflect` builtin in the IR. However, this
currently runs in the standard optimization pipeline, not just the
backend pipeline. This means that if the user creates LLVM-IR without an
architecture set, it will always delete the reflect code even if it is
intended to be used later.

Pushing this into the backend pipeline will ensure that this works as
intended, allowing users to conditionally include code depending on
which target architecture the user ended up using. This fixes a bug in
OpenMP and missing code in `libc`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
This pass lowers the `__nvvm_reflect` builtin in the IR. However, this
currently runs in the standard optimization pipeline, not just the
backend pipeline. This means that if the user creates LLVM-IR without an
architecture set, it will always delete the reflect code even if it is
intended to be used later.

Pushing this into the backend pipeline will ensure that this works as
intended, allowing users to conditionally include code depending on
which target architecture the user ended up using. This fixes a bug in
OpenMP and missing code in `libc`.</pre>
</div>
</content>
</entry>
<entry>
<title>[Target] Remove unused includes (NFC) (#116577)</title>
<updated>2024-11-18T15:19:50+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-11-18T15:19:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ed8019d9fbed2e6a6b08f8f73e9fa54a24f3ed52'/>
<id>ed8019d9fbed2e6a6b08f8f73e9fa54a24f3ed52</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>[IR] Add getDataLayout() helpers to Function and GlobalValue (#96919)</title>
<updated>2024-06-28T06:36:49+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-06-28T06:36:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9df71d7673b5c98e1032d01be83724a45b42fafc'/>
<id>9df71d7673b5c98e1032d01be83724a45b42fafc</id>
<content type='text'>
Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, replacing the
current `getParent()-&gt;getDataLayout()` pattern.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Similar to https://github.com/llvm/llvm-project/pull/96902, this adds
`getDataLayout()` helpers to Function and GlobalValue, replacing the
current `getParent()-&gt;getDataLayout()` pattern.</pre>
</div>
</content>
</entry>
</feed>
