History log of /llvm-project/offload/DeviceRTL/include/Synchronization.h (Results 1 – 9 of 9)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...