xref: /llvm-project/README.md (revision ca260e1b119b043195158098a9afda3967c6854b)
10dc6249aSGreg Bedwell# The LLVM Compiler Infrastructure
2ec937b91SJames Y Knight
30d3377c4SDiogo Teles Sant'Anna[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/llvm/llvm-project/badge)](https://securityscorecards.dev/viewer/?uri=github.com/llvm/llvm-project)
401ddc0edSTom Stellard[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8273/badge)](https://www.bestpractices.dev/projects/8273)
5f0fd8fd7SMark de Wever[![libc++](https://github.com/llvm/llvm-project/actions/workflows/libcxx-build-and-test.yaml/badge.svg?branch=main&event=schedule)](https://github.com/llvm/llvm-project/actions/workflows/libcxx-build-and-test.yaml?query=event%3Aschedule)
60d3377c4SDiogo Teles Sant'Anna
7da6384fbSMeike BaumgärtnerWelcome to the LLVM project!
8da6384fbSMeike Baumgärtner
965548ff3SArthur EubanksThis repository contains the source code for LLVM, a toolkit for the
1065548ff3SArthur Eubanksconstruction of highly optimized compilers, optimizers, and run-time
1165548ff3SArthur Eubanksenvironments.
1265548ff3SArthur Eubanks
13da6384fbSMeike BaumgärtnerThe LLVM project has multiple components. The core of the project is
14da6384fbSMeike Baumgärtneritself called "LLVM". This contains all of the tools, libraries, and header
1547a11a97SPaul Robinsonfiles needed to process intermediate representations and convert them into
16da6384fbSMeike Baumgärtnerobject files. Tools include an assembler, disassembler, bitcode analyzer, and
1765548ff3SArthur Eubanksbitcode optimizer.
18da6384fbSMeike Baumgärtner
19*ca260e1bSFrederic CambusC-like languages use the [Clang](https://clang.llvm.org/) frontend. This
2059dd6250SAustin Conloncomponent compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode
21da6384fbSMeike Baumgärtner-- and from there into object files, using LLVM.
22da6384fbSMeike Baumgärtner
23da6384fbSMeike BaumgärtnerOther components include:
24da6384fbSMeike Baumgärtnerthe [libc++ C++ standard library](https://libcxx.llvm.org),
25da6384fbSMeike Baumgärtnerthe [LLD linker](https://lld.llvm.org), and more.
26da6384fbSMeike Baumgärtner
2765548ff3SArthur Eubanks## Getting the Source Code and Building LLVM
28da6384fbSMeike Baumgärtner
29da6384fbSMeike BaumgärtnerConsult the
3065548ff3SArthur Eubanks[Getting Started with LLVM](https://llvm.org/docs/GettingStarted.html#getting-the-source-code-and-building-llvm)
3165548ff3SArthur Eubankspage for information on building and running LLVM.
3265548ff3SArthur Eubanks
3365548ff3SArthur EubanksFor information on how to contribute to the LLVM project, please take a look at
3465548ff3SArthur Eubanksthe [Contributing to LLVM](https://llvm.org/docs/Contributing.html) guide.
35ed76de7dSSylvestre Ledru
36ed76de7dSSylvestre Ledru## Getting in touch
37ed76de7dSSylvestre Ledru
3865548ff3SArthur EubanksJoin the [LLVM Discourse forums](https://discourse.llvm.org/), [Discord
391914bcfdSKristof Beylschat](https://discord.gg/xS7Z362),
401914bcfdSKristof Beyls[LLVM Office Hours](https://llvm.org/docs/GettingInvolved.html#office-hours) or
411914bcfdSKristof Beyls[Regular sync-ups](https://llvm.org/docs/GettingInvolved.html#online-sync-ups).
42ed76de7dSSylvestre Ledru
43ed76de7dSSylvestre LedruThe LLVM project has adopted a [code of conduct](https://llvm.org/docs/CodeOfConduct.html) for
44ed76de7dSSylvestre Ledruparticipants to all modes of communication within the project.
45