# Contributing to LLVM

Thank you for your interest in contributing to LLVM! There are many ways to
contribute, and we appreciate all contributions.

To get started with contributing, please take a look at the
[Contributing to LLVM](https://llvm.org/docs/Contributing.html) guide. It
describes how to get involved, raise issues and submit patches.

## Getting in touch

Join the [LLVM Discourse forums](https://discourse.llvm.org/) or [Discord
chat](https://discord.gg/xS7Z362).

The LLVM project has adopted a [code of conduct](https://llvm.org/docs/CodeOfConduct.html) for
participants to all modes of communication within the project.
