<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/offload, branch users/pcc/spr/main.codegen-driver-introduce-fpreferred-function-alignment-option</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>[Offload] Fix isValidBinary segfault on host platform</title>
<updated>2025-10-06T19:46:50+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-10-06T19:45:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=095877c12ec6aed1fd02964e5c3b1283ff2df073'/>
<id>095877c12ec6aed1fd02964e5c3b1283ff2df073</id>
<content type='text'>
Summary:
Need to verify this actually has a device. We really need to rework this
to point to a real impolementation, or streamline it to handle this
automatically.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
Need to verify this actually has a device. We really need to rework this
to point to a real impolementation, or streamline it to handle this
automatically.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Remove check on kernel argument sizes (#162121)</title>
<updated>2025-10-06T17:49:44+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-10-06T17:49:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8763812b4c60a702094d03c45d3a9db4478ca331'/>
<id>8763812b4c60a702094d03c45d3a9db4478ca331</id>
<content type='text'>
Summary:
This check is unnecessarily restrictive and currently incorrectly fires
for any size less than eight bytes. Just remove it, we do sanity checks
elsewhere and at some point need to trust the ABI.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
This check is unnecessarily restrictive and currently incorrectly fires
for any size less than eight bytes. Just remove it, we do sanity checks
elsewhere and at some point need to trust the ABI.</pre>
</div>
</content>
</entry>
<entry>
<title>[OFFLOAD] Restore interop functionality (#161429)</title>
<updated>2025-10-02T19:48:31+00:00</updated>
<author>
<name>Alex Duran</name>
<email>alejandro.duran@intel.com</email>
</author>
<published>2025-10-02T19:48:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=902fe02e8722b8f51cb3897226c97fbff353c890'/>
<id>902fe02e8722b8f51cb3897226c97fbff353c890</id>
<content type='text'>
This implements two pieces to restore the interop functionality (that I
broke) when the 6.0 interfaces were added:

* A set of wrappers that support the old interfaces on top of the new
ones
* The same level of interop support for the CUDA amd AMD plugins</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This implements two pieces to restore the interop functionality (that I
broke) when the 6.0 interfaces were added:

* A set of wrappers that support the old interfaces on top of the new
ones
* The same level of interop support for the CUDA amd AMD plugins</pre>
</div>
</content>
</entry>
<entry>
<title>[Flang][OpenMP] Implicitly map nested allocatable components in derived types (#160766)</title>
<updated>2025-10-02T16:15:16+00:00</updated>
<author>
<name>Akash Banerjee</name>
<email>akash.banerjee@amd.com</email>
</author>
<published>2025-10-02T16:15:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ed12dc5e306c6d062c71e89f47756e771792f4fb'/>
<id>ed12dc5e306c6d062c71e89f47756e771792f4fb</id>
<content type='text'>
This PR adds support for nested derived types and their mappers to the
MapInfoFinalization pass.

- Generalize MapInfoFinalization to add child maps for arbitrarily
nested allocatables when a derived object is mapped via declare mapper.
- Traverse HLFIR designates rooted at the target block arg and build
full coordinate_of chains; append members with correct membersIndex.

This fixes #156461.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds support for nested derived types and their mappers to the
MapInfoFinalization pass.

- Generalize MapInfoFinalization to add child maps for arbitrarily
nested allocatables when a derived object is mapped via declare mapper.
- Traverse HLFIR designates rooted at the target block arg and build
full coordinate_of chains; append members with correct membersIndex.

This fixes #156461.</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Mark problematic tests as XFAIL / UNSUPPORTED (#161267)</title>
<updated>2025-09-29T20:17:55+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-09-29T20:17:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0fcce4fb7b85ed42feb2f2291405fe4a2292b2b4'/>
<id>0fcce4fb7b85ed42feb2f2291405fe4a2292b2b4</id>
<content type='text'>
Summary:
Several of these tests have been failing for literal years. Ideally we
make efforts to fix this, but keeping these broken has had serious
consequences on our testing infrastructure where failures are the norm
so almost all test failures are disregarded. I made a tracking issue for
the ones that have been disabled.

https://github.com/llvm/llvm-project/issues/161265</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
Several of these tests have been failing for literal years. Ideally we
make efforts to fix this, but keeping these broken has had serious
consequences on our testing infrastructure where failures are the norm
so almost all test failures are disregarded. I made a tracking issue for
the ones that have been disabled.

https://github.com/llvm/llvm-project/issues/161265</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload] Fix incorrect size used in llvm-offload-device-info tool</title>
<updated>2025-09-29T19:37:11+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-09-29T18:37:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=786358a3d70561f2b2cf7d7ec239c1058818236b'/>
<id>786358a3d70561f2b2cf7d7ec239c1058818236b</id>
<content type='text'>
Summary:
This was not using the size previously queried and would fail when the
implementation actually verified it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
This was not using the size previously queried and would fail when the
implementation actually verified it.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP][Offload] Support `PRIVATE | ATTACH` maps for corresponding-pointer-initialization. (#160760)</title>
<updated>2025-09-29T18:47:21+00:00</updated>
<author>
<name>Abhinav Gaba</name>
<email>abhinav.gaba@intel.com</email>
</author>
<published>2025-09-29T18:47:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7de73c4e9d5ee1ec00bb57427ac04746ce858c3c'/>
<id>7de73c4e9d5ee1ec00bb57427ac04746ce858c3c</id>
<content type='text'>
`PRIVATE | ATTACH` maps can be used to represent firstprivate pointers
that should be initialized by doing doing the pointee's device address,
if its lookup succeeds, or retain the original host pointee's address
otherwise.

With this, for a test like the following:

  ```f90
  integer, pointer :: p(:)
  !$omp target map(p(1))
  ... print*, p(1)
  !$omp end target
  ```

The codegen can look like:
  ```llvm
   ; maps for p:
   ; &amp;p(1),       &amp;p(1), sizeof(p(1)),       TO|FROM              //(1)
   ; &amp;ref_ptr(p), &amp;p(1), sizeof(ref_ptr(p)), ATTACH               //(2)
   ; &amp;ref_ptr(p), &amp;p(1), sizeof(ref_ptr(p)), PRIVATE|ATTACH|PARAM //(3)
   call... @__omp_outlined...(ptr %ref_ptr_of_p)
  ```

* `(1)` maps the pointee `p(1)`.
* `(2)` attaches it to the (previously) mapped `ref_ptr(p)`, if present.
  It can be controlled via OpenMP 6.1's `attach(auto/always/never)`
  map-type modifiers.
* `(3)` privatizes and initializes the local `ref_ptr(p)`, which gets
passed
  in as the kernel argument `%ref_ptr_of_p`. Can be skipped if p is not
  referenced directly within the region.

While similar mapping can be used for C/C++, it's more important/useful
for Fortran as we can avoid creating another argument for passing the
descriptor, and use that to initialize the private copy in the body of
the kernel.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`PRIVATE | ATTACH` maps can be used to represent firstprivate pointers
that should be initialized by doing doing the pointee's device address,
if its lookup succeeds, or retain the original host pointee's address
otherwise.

With this, for a test like the following:

  ```f90
  integer, pointer :: p(:)
  !$omp target map(p(1))
  ... print*, p(1)
  !$omp end target
  ```

The codegen can look like:
  ```llvm
   ; maps for p:
   ; &amp;p(1),       &amp;p(1), sizeof(p(1)),       TO|FROM              //(1)
   ; &amp;ref_ptr(p), &amp;p(1), sizeof(ref_ptr(p)), ATTACH               //(2)
   ; &amp;ref_ptr(p), &amp;p(1), sizeof(ref_ptr(p)), PRIVATE|ATTACH|PARAM //(3)
   call... @__omp_outlined...(ptr %ref_ptr_of_p)
  ```

* `(1)` maps the pointee `p(1)`.
* `(2)` attaches it to the (previously) mapped `ref_ptr(p)`, if present.
  It can be controlled via OpenMP 6.1's `attach(auto/always/never)`
  map-type modifiers.
* `(3)` privatizes and initializes the local `ref_ptr(p)`, which gets
passed
  in as the kernel argument `%ref_ptr_of_p`. Can be skipped if p is not
  referenced directly within the region.

While similar mapping can be used for C/C++, it's more important/useful
for Fortran as we can avoid creating another argument for passing the
descriptor, and use that to initialize the private copy in the body of
the kernel.</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP] Fix 'libc' configuration when building OpenMP</title>
<updated>2025-09-29T16:59:17+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-09-29T16:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=44f392e999dcf6718d7dceaa7ccb39306b1c1feb'/>
<id>44f392e999dcf6718d7dceaa7ccb39306b1c1feb</id>
<content type='text'>
Summary:
Forgot to port this option's old handling from offload. It's not way
easier since they're built in the same CMake project. Also delete the
leftover directory that's not used anymore, don't know how that was
still there.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
Forgot to port this option's old handling from offload. It's not way
easier since they're built in the same CMake project. Also delete the
leftover directory that's not used anymore, don't know how that was
still there.
</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenMP][Flang] Fix no-loop test (#161162)</title>
<updated>2025-09-29T14:01:52+00:00</updated>
<author>
<name>Dominik Adamski</name>
<email>dominik.adamski@amd.com</email>
</author>
<published>2025-09-29T14:01:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e4d94f4f7f657bf932a86c6719ac2bf851bfbfdc'/>
<id>e4d94f4f7f657bf932a86c6719ac2bf851bfbfdc</id>
<content type='text'>
Fortran no-loop test is supported only for GPU.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fortran no-loop test is supported only for GPU.</pre>
</div>
</content>
</entry>
<entry>
<title>[Offload][NFC] use unique ptrs for platforms (#160888)</title>
<updated>2025-09-29T12:10:26+00:00</updated>
<author>
<name>Piotr Balcer</name>
<email>piotr.balcer@intel.com</email>
</author>
<published>2025-09-29T12:10:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=23d08af3d422f10d180af1e0b6261b65f76dfeed'/>
<id>23d08af3d422f10d180af1e0b6261b65f76dfeed</id>
<content type='text'>
Currently, devices store a raw pointer to back to their owning Platform.
Platforms are stored directly inside of a vector. Modifying this vector
risks invalidating all the platform pointers stored in devices.

This patch allocates platforms individually, and changes devices to
store a reference to its platform instead of a pointer. This is safe,
because platforms are guaranteed to outlive the devices they contain.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, devices store a raw pointer to back to their owning Platform.
Platforms are stored directly inside of a vector. Modifying this vector
risks invalidating all the platform pointers stored in devices.

This patch allocates platforms individually, and changes devices to
store a reference to its platform instead of a pointer. This is safe,
because platforms are guaranteed to outlive the devices they contain.</pre>
</div>
</content>
</entry>
</feed>
