Greg Bedwell | 0dc6249 | 2018-10-19 00:03:01 | [diff] [blame] | 1 | # The LLVM Compiler Infrastructure |
James Y Knight | ec937b9 | 2017-10-19 21:09:49 | [diff] [blame] | 2 | |
Meike Baumgärtner | da6384f | 2019-10-24 01:03:37 | [diff] [blame] | 3 | Welcome to the LLVM project! |
| 4 | |
Arthur Eubanks | 65548ff | 2023-03-06 19:45:23 | [diff] [blame] | 5 | This repository contains the source code for LLVM, a toolkit for the |
| 6 | construction of highly optimized compilers, optimizers, and run-time |
| 7 | environments. |
| 8 | |
Meike Baumgärtner | da6384f | 2019-10-24 01:03:37 | [diff] [blame] | 9 | The LLVM project has multiple components. The core of the project is |
| 10 | itself called "LLVM". This contains all of the tools, libraries, and header |
Paul Robinson | 47a11a9 | 2021-05-12 15:48:50 | [diff] [blame] | 11 | files needed to process intermediate representations and convert them into |
Priyansh Singh | 1cb2991 | 2022-03-31 11:35:40 | [diff] [blame] | 12 | object files. Tools include an assembler, disassembler, bitcode analyzer, and |
Arthur Eubanks | 65548ff | 2023-03-06 19:45:23 | [diff] [blame] | 13 | bitcode optimizer. |
Meike Baumgärtner | da6384f | 2019-10-24 01:03:37 | [diff] [blame] | 14 | |
Priyansh Singh | 1cb2991 | 2022-03-31 11:35:40 | [diff] [blame] | 15 | C-like languages use the [Clang](http://clang.llvm.org/) frontend. This |
Austin Conlon | 59dd625 | 2020-04-07 06:36:49 | [diff] [blame] | 16 | component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode |
Meike Baumgärtner | da6384f | 2019-10-24 01:03:37 | [diff] [blame] | 17 | -- and from there into object files, using LLVM. |
| 18 | |
| 19 | Other components include: |
| 20 | the [libc++ C++ standard library](https://libcxx.llvm.org), |
| 21 | the [LLD linker](https://lld.llvm.org), and more. |
| 22 | |
Arthur Eubanks | 65548ff | 2023-03-06 19:45:23 | [diff] [blame] | 23 | ## Getting the Source Code and Building LLVM |
Meike Baumgärtner | da6384f | 2019-10-24 01:03:37 | [diff] [blame] | 24 | |
| 25 | Consult the |
Arthur Eubanks | 65548ff | 2023-03-06 19:45:23 | [diff] [blame] | 26 | [Getting Started with LLVM](https://llvm.org/docs/GettingStarted.html#getting-the-source-code-and-building-llvm) |
| 27 | page for information on building and running LLVM. |
| 28 | |
| 29 | For information on how to contribute to the LLVM project, please take a look at |
| 30 | the [Contributing to LLVM](https://llvm.org/docs/Contributing.html) guide. |
Sylvestre Ledru | ed76de7 | 2022-02-08 20:54:32 | [diff] [blame] | 31 | |
| 32 | ## Getting in touch |
| 33 | |
Arthur Eubanks | 65548ff | 2023-03-06 19:45:23 | [diff] [blame] | 34 | Join the [LLVM Discourse forums](https://discourse.llvm.org/), [Discord |
| 35 | chat](https://discord.gg/xS7Z362), or #llvm IRC channel on |
| 36 | [OFTC](https://oftc.net/). |
Sylvestre Ledru | ed76de7 | 2022-02-08 20:54:32 | [diff] [blame] | 37 | |
| 38 | The LLVM project has adopted a [code of conduct](https://llvm.org/docs/CodeOfConduct.html) for |
| 39 | participants to all modes of communication within the project. |