Revision tags: llvmorg-21-init |
|
#
3274bf6b |
| 21-Jan-2025 |
Joseph Huber <huberjn@outlook.com> |
[OpenMP] Make each atomic helper take an atomic scope argument (#122786)
Summary: Right now we just default to device for each type, and mix an ad-hoc scope with the one used by the compiler's built
[OpenMP] Make each atomic helper take an atomic scope argument (#122786)
Summary: Right now we just default to device for each type, and mix an ad-hoc scope with the one used by the compiler's builtins. Unify this can make each version take the scope optionally.
For @ronlieb, this will remove the need for `add_system` in the fork as well as the extra `cas` with system scope, just pass `system`.
show more ...
|
#
723a3e74 |
| 20-Jan-2025 |
Joseph Huber <huberjn@outlook.com> |
[OpenMP] Fix mispelled attribute and warning
Summary: This is spelled `ompx_aligned_barrier` when used directly, but wasn't included in the list of known assumptions. Fix that so now th test works.
|
#
58af82b4 |
| 20-Jan-2025 |
Joseph Huber <huberjn@outlook.com> |
[OpenMP] Remove 'omp assumes' scopes now that we have no inline ASM (#123611)
Summary:
We used this globally scoped `ext_no_call_asm` as a sort of hack around
the compiler that allowed the attribu
[OpenMP] Remove 'omp assumes' scopes now that we have no inline ASM (#123611)
Summary:
We used this globally scoped `ext_no_call_asm` as a sort of hack around
the compiler that allowed the attributor to optimize out inline assembly
calls to PTX instructions. Quite some time ago I got rid of every inline
assembly call and replaced it with a builitin, so this can just be
deleted.
Furthermore, I use the `[[omp::assume]]` attribute directly for the
aligned barrier usage. This prints an unknown assumption warning (even
though it isn't) so I'm just silencing that for now until I fix it
later.
---------
Co-authored-by: Michael Kruse <github@meinersbur.de>
show more ...
|
#
1c00d0d7 |
| 16-Jan-2025 |
Joseph Huber <huberjn@outlook.com> |
[OpenMP] Remove hack around missing atomic load (#122781)
Summary: We used to do a fetch add of zero to approximate a load. This is because the NVPTX backend didn't handle this properly. It's not an
[OpenMP] Remove hack around missing atomic load (#122781)
Summary: We used to do a fetch add of zero to approximate a load. This is because the NVPTX backend didn't handle this properly. It's not an issue anymore so simply use the proper atomic builtin.
show more ...
|
Revision tags: llvmorg-19.1.7 |
|
#
f53cb84d |
| 09-Jan-2025 |
Joseph Huber <huberjn@outlook.com> |
[OpenMP] Use __builtin_bit_cast instead of UB type punning (#122325)
Summary: Use a normal bitcast, remove from the shared utils since it's not available in GCC 7.4
|
#
b57c0bac |
| 09-Jan-2025 |
Joseph Huber <huberjn@outlook.com> |
[OpenMP] Update atomic helpers to just use headers (#122185)
Summary: Previously we had some indirection here, this patch updates these utilities to just be normal template functions. We use SFINAE
[OpenMP] Update atomic helpers to just use headers (#122185)
Summary: Previously we had some indirection here, this patch updates these utilities to just be normal template functions. We use SFINAE to manage the special case handling for floats. Also this strips address spaces so it can be used more generally.
show more ...
|
Revision tags: llvmorg-19.1.6 |
|
#
f4ee5a67 |
| 12-Dec-2024 |
Joseph Huber <huberjn@outlook.com> |
[OpenMP] Replace AMDGPU fences with generic scoped fences (#119619)
Summary: This is simpler and more common. I would've replaced the CUDA uses and made this the same but currently it doesn't codege
[OpenMP] Replace AMDGPU fences with generic scoped fences (#119619)
Summary: This is simpler and more common. I would've replaced the CUDA uses and made this the same but currently it doesn't codegen these fences fully and just emits a full system wide barrier as a fallback.
show more ...
|
Revision tags: llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0 |
|
#
08533a3e |
| 05-Sep-2024 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Offload][NFC] Reorganize `utils::` and make Device/Host/Shared clearer (#100280)
We had three `utils::` namespaces, all with different "meaning" (host,
device, hsa_utils). We should, when we can,
[Offload][NFC] Reorganize `utils::` and make Device/Host/Shared clearer (#100280)
We had three `utils::` namespaces, all with different "meaning" (host,
device, hsa_utils). We should, when we can, keep "include/Shared"
accessible from host and device, thus RefCountTy has been moved to a
separate header. `hsa_utils` was introduced to make `utils::` less
overloaded. And common functionality was de-duplicated, e.g.,
`utils::advance` and `utils::advanceVoidPtr` -> `utils:advancePtr`. Type
punning now checks for the size of the result to make sure it matches
the source type.
No functional change was intended.
show more ...
|
Revision tags: llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5 |
|
#
330d8983 |
| 22-Apr-2024 |
Johannes Doerfert <johannes@jdoerfert.de> |
[Offload] Move `/openmp/libomptarget` to `/offload` (#75125)
In a nutshell, this moves our libomptarget code to populate the offload
subproject.
With this commit, users need to enable the new LL
[Offload] Move `/openmp/libomptarget` to `/offload` (#75125)
In a nutshell, this moves our libomptarget code to populate the offload
subproject.
With this commit, users need to enable the new LLVM/Offload subproject
as a runtime in their cmake configuration.
No further changes are expected for downstream code.
Tests and other components still depend on OpenMP and have also not been
renamed. The results below are for a build in which OpenMP and Offload
are enabled runtimes. In addition to the pure `git mv`, we needed to
adjust some CMake files. Nothing is intended to change semantics.
```
ninja check-offload
```
Works with the X86 and AMDGPU offload tests
```
ninja check-openmp
```
Still works but doesn't build offload tests anymore.
```
ls install/lib
```
Shows all expected libraries, incl.
- `libomptarget.devicertl.a`
- `libomptarget-nvptx-sm_90.bc`
- `libomptarget.rtl.amdgpu.so` -> `libomptarget.rtl.amdgpu.so.18git`
- `libomptarget.so` -> `libomptarget.so.18git`
Fixes: https://github.com/llvm/llvm-project/issues/75124
---------
Co-authored-by: Saiyedul Islam <Saiyedul.Islam@amd.com>
show more ...
|