|
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5 |
|
| #
89614ceb |
| 22-Nov-2024 |
Joseph Huber <huberjn@outlook.com> |
[libc] Move RPC interface to `libc/shared` to export it (#117034)
Summary: Previous patches have made the `rpc.h` header independent of the `libc` internals. This allows us to include it directly ra
[libc] Move RPC interface to `libc/shared` to export it (#117034)
Summary: Previous patches have made the `rpc.h` header independent of the `libc` internals. This allows us to include it directly rather than providing an indirect C API. This patch only does the work to move the header. A future patch will pull out the `rpc_server` interface and simply replace it with a single function that handles the opcodes.
show more ...
|
|
Revision tags: llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, 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, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1 |
|
| #
73aab2f6 |
| 29-Feb-2024 |
lntue <35648136+lntue@users.noreply.github.com> |
[libc] Revert https://github.com/llvm/llvm-project/pull/83199 since it broke Fuchsia. (#83374)
With some header fix forward for GPU builds.
|
| #
04e8653f |
| 27-Feb-2024 |
Joseph Huber <huberjn@outlook.com> |
[libc] Add "include/" to the LLVM include directories (#83199)
Summary: Recent changes added an include path in the float128 type that used the internal `libc` path to find the macro. This doesn't w
[libc] Add "include/" to the LLVM include directories (#83199)
Summary: Recent changes added an include path in the float128 type that used the internal `libc` path to find the macro. This doesn't work once it's installed because we need to search from the root of the install dir. This patch adds "include/" to the include path so that our inclusion of installed headers always match the internal use.
show more ...
|
|
Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2 |
|
| #
b6bc9d72 |
| 26-Sep-2023 |
Guillaume Chatelet <gchatelet@google.com> |
[libc] Mass replace enclosing namespace (#67032)
This is step 4 of
https://discourse.llvm.org/t/rfc-customizable-namespace-to-allow-testing-the-libc-when-the-system-libc-is-also-llvms-libc/73079
|
|
Revision tags: llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
| #
c381a947 |
| 10-Jul-2023 |
Joseph Huber <jhuber6@vols.utk.edu> |
[libc] Remove test RPC opcodes from the exported header
This patch does the noisy work of removing the test opcodes from the exported interface to an interface that is only visible in `libc`. The be
[libc] Remove test RPC opcodes from the exported header
This patch does the noisy work of removing the test opcodes from the exported interface to an interface that is only visible in `libc`. The benefit of this is that we both test the exported RPC registration more directly, and we do not need to give this interface to users.
I have decided to export any opcode that is not a "core" libc feature as having its MSB set in the opcode. We can think of these as non-libc "extensions".
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D154848
show more ...
|
| #
1f578347 |
| 18-Jul-2023 |
Guillaume Chatelet <gchatelet@google.com> |
[libc][NFC] Rename files
This patch mostly renames files so it better reflects the function they declare.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D155607
|
|
Revision tags: llvmorg-16.0.6 |
|
| #
dcdfc963 |
| 06-Jun-2023 |
Joseph Huber <jhuber6@vols.utk.edu> |
[libc] Export GPU extensions to `libc` for external use
The GPU port of the LLVM C library needs to export a few extensions to the interface such that users can interface with it. This patch adds th
[libc] Export GPU extensions to `libc` for external use
The GPU port of the LLVM C library needs to export a few extensions to the interface such that users can interface with it. This patch adds the necessary logic to define a GPU extension. Currently, this only exports a `rpc_reset_client` function. This allows us to use the server in D147054 to set up the RPC interface outside of `libc`.
Depends on https://reviews.llvm.org/D147054
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D152283
show more ...
|
|
Revision tags: llvmorg-16.0.5 |
|
| #
29d3da3b |
| 19-May-2023 |
Joseph Huber <jhuber6@vols.utk.edu> |
[libc] Fix the `send_n` and `recv_n` utilities under divergent lanes
We provide the `send_n` and `recv_n` utilities as a generic way to stream data between both sides of the process. This was previo
[libc] Fix the `send_n` and `recv_n` utilities under divergent lanes
We provide the `send_n` and `recv_n` utilities as a generic way to stream data between both sides of the process. This was previously tested and performed as expected when using a string of constant size. However, when the size was allowed to diverge between the threads in the warp or wavefront this could deadlock. This did not occur on NVPTX because of the use of the explicit warp sync. However, on AMD one of the work items in the wavefront could continue executing and hit the next `recv` call before the other threads, then we would deadlock as we violated the RPC invariants.
This patch replaces the for loop with a thread ballot. This will cause every thread in the warp or wavefront to continue executing the loop until all of them can exit. This acts as a more explicit wavefront sync.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D150992
show more ...
|
|
Revision tags: llvmorg-16.0.4 |
|
| #
f6e5f90f |
| 11-May-2023 |
Joseph Huber <jhuber6@vols.utk.edu> |
[libc] Fix undeclared 'free' function in stream test
Summary: We need this function from the test.cpp but need to declare it manually.
|
| #
d21e507c |
| 11-May-2023 |
Joseph Huber <jhuber6@vols.utk.edu> |
[libc] Implement a generic streaming interface in the RPC
Currently we provide the `send_n` and `recv_n` functions. These were somewhat divergent and not tested on the GPU. This patch changes the su
[libc] Implement a generic streaming interface in the RPC
Currently we provide the `send_n` and `recv_n` functions. These were somewhat divergent and not tested on the GPU. This patch changes the support to be more common. We do this my making the CPU provide an array equal the to at least the lane size while the GPU can rely on the private memory address of its stack variables. This allows us to send data back and forth generically.
Reviewed By: JonChesterfield
Differential Revision: https://reviews.llvm.org/D150379
show more ...
|