[libc] Support the string conversion methods on the GPU
authorJoseph Huber <jhuber6@vols.utk.edu>
Wed, 26 Apr 2023 23:37:30 +0000 (18:37 -0500)
committerJoseph Huber <jhuber6@vols.utk.edu>
Fri, 28 Apr 2023 01:31:58 +0000 (20:31 -0500)
commit72bfe2c05a09e39c6e9c8f35fcbbd9322ed56432
tree1901c864f225cd5eebdf770ea4ad55ecacd8749b
parentdb381405ced7b65ad1cf8fc60bbdfb505e1ed3de
[libc] Support the string conversion methods on the GPU

This patch enables us to use the existing `libc` support for string
conversion functions on the GPU. This required setting the `fenv_t` and
long double configuration. As far as I am aware, long doubles are
converted to doubles on the GPU and the floating point environment is
just an `uint32_t`.

This code is still untested as we are still working out how to run the
unit tests on the GPU.

Reviewed By: michaelrj

Differential Revision: https://reviews.llvm.org/D149306
libc/config/gpu/api.td
libc/config/gpu/entrypoints.txt
libc/config/gpu/headers.txt
libc/docs/gpu/support.rst
libc/include/llvm-libc-types/fenv_t.h
libc/src/__support/FPUtil/PlatformDefs.h