Start adding support for generating CC1 command lines from CompilerInvocation
[llvm-project.git] / libclc / README.TXT
blob57b5242b9bbecbc1b11b1881d0a097515c67bf1a
1 libclc
2 ------
4 libclc is an open source, BSD licensed implementation of the library
5 requirements of the OpenCL C programming language, as specified by the
6 OpenCL 1.1 Specification. The following sections of the specification
7 impose library requirements:
9   * 6.1: Supported Data Types
10   * 6.2.3: Explicit Conversions
11   * 6.2.4.2: Reinterpreting Types Using as_type() and as_typen()
12   * 6.9: Preprocessor Directives and Macros
13   * 6.11: Built-in Functions
14   * 9.3: Double Precision Floating-Point
15   * 9.4: 64-bit Atomics
16   * 9.5: Writing to 3D image memory objects
17   * 9.6: Half Precision Floating-Point
19 libclc is intended to be used with the Clang compiler's OpenCL frontend.
21 libclc is designed to be portable and extensible. To this end, it provides
22 generic implementations of most library requirements, allowing the target
23 to override the generic implementation at the granularity of individual
24 functions.
26 libclc currently only supports the PTX target, but support for more
27 targets is welcome.
29 Compiling and installing with Make
30 ----------------------------------
32 $ ./configure.py --with-llvm-config=/path/to/llvm-config && make
33 $ make install
35 Note you can use the DESTDIR Makefile variable to do staged installs.
37 $ make install DESTDIR=/path/for/staged/install
39 Compiling and installing with Ninja
40 -----------------------------------
42 $ ./configure.py -g ninja --with-llvm-config=/path/to/llvm-config && ninja
43 $ ninja install
45 Note you can use the DESTDIR environment variable to do staged installs.
47 $ DESTDIR=/path/for/staged/install ninja install
49 Website
50 -------
52 https://libclc.llvm.org/