Page MenuHomePhabricator


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<html xmlns="">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Contributing to LLVM &mdash; LLVM 6 documentation</title>
<link rel="stylesheet" href="_static/llvm-theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
URL_ROOT: './',
FILE_SUFFIX: '.html',
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="LLVM 6 documentation" href="index.html" />
<link rel="next" title="Advanced Build Configurations" href="AdvancedBuilds.html" />
<link rel="prev" title="CMake Primer" href="CMakePrimer.html" />
<style type="text/css">
table.right { float: right; margin-left: 20px; }
table.right td { border: 1px solid #ccc; }
<body role="document">
<div class="logo">
<a href="index.html">
<img src="_static/logo.png"
alt="LLVM Logo" width="250" height="88"/></a>
<div class="related" role="navigation" aria-label="related navigation">
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
<li class="right" >
<a href="AdvancedBuilds.html" title="Advanced Build Configurations"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="CMakePrimer.html" title="CMake Primer"
accesskey="P">previous</a> |</li>
<li><a href="">LLVM Home</a>&nbsp;|&nbsp;</li>
<li><a href="index.html">Documentation</a>&raquo;</li>
<div class="document">
<div class="documentwrapper">
<div class="body" role="main">
<div class="section" id="contributing-to-llvm">
<h1>Contributing to LLVM<a class="headerlink" href="#contributing-to-llvm" title="Permalink to this headline"></a></h1>
<p>Thank you for your interest in contributing to LLVM! There are multiple ways to
contribute, and we appreciate all of them. In case you
have questions, you can either use the <a class="reference external" href="">Developer&#8217;s List (llvm-dev)</a>
or the #llvm channel on <a class="reference external" href="irc://"></a>.</p>
<p>If you want to contribute code, please familiarize yourself with the <a class="reference internal" href="DeveloperPolicy.html"><em>LLVM Developer Policy</em></a>.</p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#bug-reports" id="id1">Bug reports</a></li>
<li><a class="reference internal" href="#bug-fixes" id="id2">Bug fixes</a></li>
<li><a class="reference internal" href="#bigger-pieces-of-work" id="id3">Bigger pieces of work</a></li>
<div class="section" id="bug-reports">
<h2><a class="toc-backref" href="#id1">Bug reports</a><a class="headerlink" href="#bug-reports" title="Permalink to this headline"></a></h2>
<p>If you are working with LLVM and run into a bug, we definitely want to know
about it. Please let us know and follow the instructions in
<a class="reference internal" href="HowToSubmitABug.html"><em>How to submit an LLVM bug report</em></a> to create a bug report.</p>
<div class="section" id="bug-fixes">
<h2><a class="toc-backref" href="#id2">Bug fixes</a><a class="headerlink" href="#bug-fixes" title="Permalink to this headline"></a></h2>
<p>If you are interested in contributing code to LLVM, bugs labeled with the
<a class="reference external" href=";bug_status=REOPENED&amp;keywords=beginner%2C%20&amp;keywords_type=allwords&amp;list_id=130748&amp;query_format=advanced&amp;resolution=---">beginner keyword</a> in the <a class="reference external" href="">bug tracker</a> are a good way to get familiar with
the code base. If you are interested in fixing a bug, please create an account
for the bug tracker and assign it to you, to let people know you are working on
<p>Then try to reproduce and fix the bug with upstream LLVM. Start by building
LLVM from source as described in <a class="reference internal" href="GettingStarted.html"><em>Getting Started with the LLVM System</em></a> and
and use the built binaries to reproduce the failure described in the bug. Use
a debug build (<cite>-DCMAKE_BUILD_TYPE=Debug</cite>) or a build with assertions
(<cite>-DLLVM_ENABLE_ASSERTIONS=On</cite>, enabled for Debug builds).</p>
<p>Once you reproduced and fixed the bug, it is time to submit a patch. The patch
<ul class="simple">
<li>include a small unit test</li>
<li>conform to the <a class="reference internal" href="CodingStandards.html"><em>LLVM Coding Standards</em></a>. You can use the <a class="reference external" href=""></a> or <a class="reference external" href="">git-clang-format</a> tools to automatically format your patch properly.</li>
<li>not contain any unrelated changes</li>
<li>be an isolated change. Independent changes should be submitted as separate patches as this makes reviewing easier.</li>
<p>To get a patch accepted, it has to be reviewed by the LLVM community. This can
be done using <a class="reference external" href="">LLVM&#8217;s Phabricator</a> or the llvm-commits mailing list.
Please follow <a class="reference internal" href="Phabricator.html#phabricator-request-review-web"><span>Phabricator#requesting-a-review-via-the-web-interface</span></a>
to request a review using Phabricator.</p>
<p>To make sure the right people see your patch, please select suitable reviewers
and add them to your patch when requesting a review. Suitable reviewers are the
code owner (see CODE_OWNERS.txt) and other people doing work in the area your
patch touches.</p>
<p>A reviewer usually accepts the patch with a <cite>Looks good to me</cite>. Once that is done
the change can be committed. In case you do not yet have commit access, please
let people know during the review and someone should commit it on your behalf.</p>
<p>Sometimes it can take a while until someone has time to review the patch.
In that case you can ping the patch. The common courtesy ping rate is one week.
Remember that you are asking for valuable time from other professional developers.</p>
<div class="section" id="bigger-pieces-of-work">
<h2><a class="toc-backref" href="#id3">Bigger pieces of work</a><a class="headerlink" href="#bigger-pieces-of-work" title="Permalink to this headline"></a></h2>
<p>In case you are interested in taking on a bigger piece of work, a list of
interesting projects is maintained at then
<a class="reference external" href="">LLVM&#8217;s Open Projects page</a>.
In case you are interested in working on any of these projects,
please send a mail to the
<a class="reference external" href="">LLVM Developer&#8217;s</a> mailing list,
so that we know the project is being worked on.</p>
<div class="clearer"></div>
<div class="related" role="navigation" aria-label="related navigation">
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
<li class="right" >
<a href="AdvancedBuilds.html" title="Advanced Build Configurations"
>next</a> |</li>
<li class="right" >
<a href="CMakePrimer.html" title="CMake Primer"
>previous</a> |</li>
<li><a href="">LLVM Home</a>&nbsp;|&nbsp;</li>
<li><a href="index.html">Documentation</a>&raquo;</li>
<div class="footer" role="contentinfo">
&copy; Copyright 2003-2018, LLVM Project.
Last updated on 2018-01-02.
Created using <a href="">Sphinx</a> 1.3.6.

File Metadata

Mime Type
Storage Engine
Storage Format
Raw Data
Storage Handle

Event Timeline