llvm-capstone/libc/docs
Joseph Huber d04494ccc9 [libc] Rework the file handling for the GPU
The GPU has much tighter requirements for handling IO functions.
Previously we attempted to define the GPU as one of the platform files.
Using a common interface allowed us to easily define these functions
without much extra work. However, it became more clear that this was a
poor fit for the GPU. The file interface uses function pointers, which
prevented inlining and caused bad perfromance and resource usage on the
GPU. Further, using an actual `FILE` type rather than referring to it as
a host stub prevented us from usin files coming from the host on the GPU
device.

After talking with @sivachandra, the approach now is to simply define
GPU specific versions of the functions we intend to support. Also, we
are ignoring `errno` for the time being as it is unlikely we will ever
care about supporting it fully.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D157427
2023-08-09 14:42:20 -05:00
..
_static [libc] Make the sidebar colors have a higher constract in the white background. 2023-01-05 09:43:59 -08:00
dev [libc][doc] Update macros documentation 2023-08-08 08:02:30 +00:00
gpu [libc] Rework the file handling for the GPU 2023-08-09 14:42:20 -05:00
math [libc][math] Implement erff function correctly rounded to all rounding modes. 2023-06-28 13:58:37 -04:00
build_and_test.rst [libc][bazel] Add bazel targets and unit tests for math functions. 2023-02-03 15:11:20 -05:00
check.rst [libc][cleanup] Docs clean up 2022-10-15 15:29:48 +00:00
CMakeLists.txt Move LLVM Proposal to doc directory, create index 2022-01-29 00:29:31 +00:00
compiler_support.rst [libc] Fix typos in documentation 2023-05-06 11:26:32 -07:00
conf.py [NFC][Py Reformat] Reformat python files in the rest of the dirs 2023-05-25 11:17:05 +02:00
contributing.rst [libc] Fix typos in documentation 2023-04-24 23:31:48 -07:00
date_and_time.rst [libc][docs] Update implementation status table for Date and Time Functions. 2023-05-31 15:09:06 -04:00
full_cross_build.rst [libc] Add two more recipes to do a cross build. 2023-04-18 12:40:14 -07:00
full_host_build.rst [libc] Add instructions for linux headers 2023-03-15 03:02:16 +00:00
fullbuild_mode.rst [libc] Add document for a recipe to do a full standalone cross-build. 2023-01-05 09:37:21 -08:00
header_gen_scheme.svg
index.rst [libc][Docs] Begin improving documentation for the GPU libc 2023-04-26 10:30:54 -05:00
overlay_mode.rst [libc] Fix typos in documentation 2023-04-24 23:31:48 -07:00
porting.rst [libc] Fix typos in documentation 2023-04-24 23:31:48 -07:00
README.txt Move LLVM Proposal to doc directory, create index 2022-01-29 00:29:31 +00:00
stdio.rst [libc] Add implementation of getchar 2023-04-14 15:40:05 -07:00
strings.rst [reland][libc] Add bcopy 2022-12-01 10:07:04 +00:00
usage_modes.rst [libc] Add a doc about the libc overlay mode. 2022-10-26 21:53:29 -07:00

libc Documentation
==================

The libc documentation is written using the Sphinx documentation generator. It is
currently tested with Sphinx 1.1.3.

To build the documents into html configure libc with the following cmake options:

  * -DLLVM_ENABLE_SPHINX=ON
  * -DLIBC_INCLUDE_DOCS=ON

After configuring libc with these options the make rule `docs-libc-html`
should be available.