• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H12-Oct-2021-117

clang/H03-May-2022-5,221,7112,343,944

clang-tools-extra/H03-May-2022-736,704635,198

compiler-rt/H03-May-2022-548,077441,611

cross-project-tests/H03-May-2022-13,7438,898

flang/H03-May-2022-213,900156,502

libc/H03-May-2022-72,10549,592

libclc/H03-May-2022-25,79320,270

libcxx/H03-May-2022-903,533678,225

libcxxabi/H03-May-2022-57,28350,112

libunwind/H03-May-2022-20,80316,756

lld/H03-May-2022-285,397215,889

lldb/H03-May-2022-968,802712,697

llvm/H03-May-2022-12,643,37210,180,179

mlir/H03-May-2022-578,494423,538

openmp/H03-May-2022-181,764129,138

parallel-libs/H03-May-2022-6,5874,849

polly/H03-May-2022-453,328334,920

pstl/H03-May-2022-20,83916,003

runtimes/H03-May-2022-43

utils/H12-Oct-2021-18,87817,040

.arcconfigH A D12-Oct-2021219 98

.arclintH A D12-Oct-2021437 1615

.clang-formatH A D12-Oct-202119 21

.clang-tidyH A D12-Oct-2021932 2018

.git-blame-ignore-revsH A D12-Oct-20211.6 KiB4633

.gitignoreH A D12-Oct-20212.1 KiB7165

.mailmapH A D12-Oct-20211.5 KiB3836

CONTRIBUTING.mdH A D12-Oct-2021455 118

README.mdH A D12-Oct-20214.5 KiB10874

SECURITY.mdH A D12-Oct-2021205 64

README.md

1# The LLVM Compiler Infrastructure
2
3This directory and its sub-directories contain source code for LLVM,
4a toolkit for the construction of highly optimized compilers,
5optimizers, and run-time environments.
6
7The README briefly describes how to get started with building LLVM.
8For more information on how to contribute to the LLVM project, please
9take a look at the
10[Contributing to LLVM](https://llvm.org/docs/Contributing.html) guide.
11
12## Getting Started with the LLVM System
13
14Taken from https://llvm.org/docs/GettingStarted.html.
15
16### Overview
17
18Welcome to the LLVM project!
19
20The LLVM project has multiple components. The core of the project is
21itself called "LLVM". This contains all of the tools, libraries, and header
22files needed to process intermediate representations and convert them into
23object files.  Tools include an assembler, disassembler, bitcode analyzer, and
24bitcode optimizer.  It also contains basic regression tests.
25
26C-like languages use the [Clang](http://clang.llvm.org/) front end.  This
27component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode
28-- and from there into object files, using LLVM.
29
30Other components include:
31the [libc++ C++ standard library](https://libcxx.llvm.org),
32the [LLD linker](https://lld.llvm.org), and more.
33
34### Getting the Source Code and Building LLVM
35
36The LLVM Getting Started documentation may be out of date.  The [Clang
37Getting Started](http://clang.llvm.org/get_started.html) page might have more
38accurate information.
39
40This is an example work-flow and configuration to get and build the LLVM source:
41
421. Checkout LLVM (including related sub-projects like Clang):
43
44     * ``git clone https://github.com/llvm/llvm-project.git``
45
46     * Or, on windows, ``git clone --config core.autocrlf=false
47    https://github.com/llvm/llvm-project.git``
48
492. Configure and build LLVM and Clang:
50
51     * ``cd llvm-project``
52
53     * ``cmake -S llvm -B build -G <generator> [options]``
54
55        Some common build system generators are:
56
57        * ``Ninja`` --- for generating [Ninja](https://ninja-build.org)
58          build files. Most llvm developers use Ninja.
59        * ``Unix Makefiles`` --- for generating make-compatible parallel makefiles.
60        * ``Visual Studio`` --- for generating Visual Studio projects and
61          solutions.
62        * ``Xcode`` --- for generating Xcode projects.
63
64        Some common options:
65
66        * ``-DLLVM_ENABLE_PROJECTS='...'`` --- semicolon-separated list of the LLVM
67          sub-projects you'd like to additionally build. Can include any of: clang,
68          clang-tools-extra, compiler-rt,cross-project-tests, flang, libc, libclc,
69          libcxx, libcxxabi, libunwind, lld, lldb, mlir, openmp, parallel-libs,
70          polly, or pstl.
71
72          For example, to build LLVM, Clang, libcxx, and libcxxabi, use
73          ``-DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi"``.
74
75        * ``-DCMAKE_INSTALL_PREFIX=directory`` --- Specify for *directory* the full
76          path name of where you want the LLVM tools and libraries to be installed
77          (default ``/usr/local``).
78
79        * ``-DCMAKE_BUILD_TYPE=type`` --- Valid options for *type* are Debug,
80          Release, RelWithDebInfo, and MinSizeRel. Default is Debug.
81
82        * ``-DLLVM_ENABLE_ASSERTIONS=On`` --- Compile with assertion checks enabled
83          (default is Yes for Debug builds, No for all other build types).
84
85      * ``cmake --build build [-- [options] <target>]`` or your build system specified above
86        directly.
87
88        * The default target (i.e. ``ninja`` or ``make``) will build all of LLVM.
89
90        * The ``check-all`` target (i.e. ``ninja check-all``) will run the
91          regression tests to ensure everything is in working order.
92
93        * CMake will generate targets for each tool and library, and most
94          LLVM sub-projects generate their own ``check-<project>`` target.
95
96        * Running a serial build will be **slow**.  To improve speed, try running a
97          parallel build.  That's done by default in Ninja; for ``make``, use the option
98          ``-j NNN``, where ``NNN`` is the number of parallel jobs, e.g. the number of
99          CPUs you have.
100
101      * For more information see [CMake](https://llvm.org/docs/CMake.html)
102
103Consult the
104[Getting Started with LLVM](https://llvm.org/docs/GettingStarted.html#getting-started-with-llvm)
105page for detailed information on configuring and compiling LLVM. You can visit
106[Directory Layout](https://llvm.org/docs/GettingStarted.html#directory-layout)
107to learn about the layout of the source code tree.
108