| <!--#include virtual="header.incl" --> |
| |
| <table border="0" cellpadding="0" cellspacing="0" width="95%"> |
| <!-- Start of the left bar... --> |
| <tr> |
| <td valign="top" style="width:64%"> |
| |
| <div class="www_sectiontitle">LLVM Overview</div> |
| |
| <div class="www_text"> |
| |
| <p>The LLVM Project is a collection of modular and reusable compiler and |
| toolchain technologies. Despite its name, LLVM has little to do with |
| traditional virtual machines. The name |
| "LLVM" itself is not an acronym; it is the full name of the project.</p> |
| |
| <p>LLVM began as a <a href="pubs/2004-01-30-CGO-LLVM.html">research |
| project</a> at |
| the <a href="https://cs.illinois.edu/">University of Illinois</a>, with |
| the goal of providing a modern, SSA-based compilation strategy capable |
| of supporting both static and dynamic compilation of arbitrary |
| programming languages. Since then, LLVM has |
| grown to be an umbrella project consisting of a number of |
| subprojects, many of which are being used in production by a wide variety of |
| <a href="Users.html">commercial and open source</a> projects |
| as well as being widely used in <a href="pubs/">academic research</a>. Code |
| in the LLVM project is licensed under the |
| <a href="docs/DeveloperPolicy.html#new-llvm-project-license-framework"> |
| "Apache 2.0 License with LLVM exceptions"</a> |
| </p> |
| |
| <p>The primary sub-projects of LLVM are:</p> |
| |
| <ol> |
| <li><p>The <b>LLVM Core</b> libraries provide a modern source- and |
| target-independent <a href="docs/Passes.html">optimizer</a>, along with |
| <a href="docs/CodeGenerator.html">code generation support</a> for many |
| popular CPUs (as well as some less common ones!) These libraries are built |
| around a <a href="docs/LangRef.html">well specified</a> code representation |
| known as the LLVM intermediate representation ("LLVM IR"). The LLVM Core |
| libraries are <a href="docs/">well documented</a>, and it is particularly |
| easy to invent your own language (or port an existing compiler) to use |
| <a href="docs/tutorial/">LLVM as an optimizer and code generator</a>.</p> |
| </li> |
| |
| <li><p><b><a href="https://clang.llvm.org">Clang</a></b> is an "LLVM native" |
| C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, |
| extremely useful <a href="https://clang.llvm.org/diagnostics.html">error |
| and warning messages</a> and to provide a platform for building great |
| source level tools. |
| The <a href="https://clang-analyzer.llvm.org/">Clang Static Analyzer</a> and |
| <a href="https://clang.llvm.org/extra/clang-tidy/">clang-tidy</a> are |
| tools that automatically find bugs in your code, and are great examples of the |
| sort of tools that can be built using the Clang frontend as a library to |
| parse C/C++ code.</p></li> |
| |
| <li><p>The <b><a href="https://lldb.llvm.org">LLDB</a></b> project builds on |
| libraries provided by LLVM and Clang to provide a great native debugger. |
| It uses the Clang ASTs and expression parser, LLVM JIT, LLVM disassembler, |
| etc so that it provides an experience that "just works". It is also |
| blazing fast and much more memory efficient than GDB at loading symbols. |
| </p></li> |
| |
| <li><p>The <b><a href="https://libcxx.llvm.org">libc++</a></b> and |
| <b><a href="https://libcxxabi.llvm.org">libc++ ABI</a></b> projects provide |
| a standard conformant and high-performance implementation of the C++ |
| Standard Library, including full support for C++11 and C++14.</p></li> |
| |
| <li><p>The <b><a href="https://compiler-rt.llvm.org">compiler-rt</a></b> project |
| provides highly tuned implementations of the low-level code generator |
| support routines like "<tt>__fixunsdfdi</tt>" and other calls generated when |
| a target doesn't have a short sequence of native instructions to implement |
| a core IR operation. It also provides implementations of run-time libraries |
| for dynamic testing tools such as |
| <a href="https://clang.llvm.org/docs/AddressSanitizer.html">AddressSanitizer</a>, |
| <a href="https://clang.llvm.org/docs/ThreadSanitizer.html">ThreadSanitizer</a>, |
| <a href="https://clang.llvm.org/docs/MemorySanitizer.html">MemorySanitizer</a>, |
| and |
| <a href="https://clang.llvm.org/docs/DataFlowSanitizer.html">DataFlowSanitizer</a>. |
| </p></li> |
| |
| <li><p>The <b><a href="https://mlir.llvm.org">MLIR</a></b> subproject is a novel |
| approach to building reusable and extensible compiler infrastructure. MLIR |
| aims to address software fragmentation, improve compilation for heterogeneous |
| hardware, significantly reduce the cost of building domain specific compilers, |
| and aid in connecting existing compilers together. |
| </p></li> |
| |
| <li><p>The <b><a href="https://openmp.llvm.org">OpenMP</a></b> subproject |
| provides an <a href="https://openmp.org">OpenMP</a> runtime for use with the |
| OpenMP implementation in Clang.</p></li> |
| |
| <li><p>The <b><a href="https://polly.llvm.org/">polly</a></b> project implements |
| a suite of cache-locality optimizations as well as auto-parallelism and |
| vectorization using a polyhedral model.</p></li> |
| |
| <li><p>The <b><a href="https://libclc.llvm.org/">libclc</a></b> project aims to |
| implement the OpenCL standard library.</p></li> |
| |
| <li><p>The <b><a href="https://klee.llvm.org">klee</a></b> project implements a |
| "symbolic virtual machine" which uses a theorem prover to try to evaluate |
| all dynamic paths through a program in an effort to find bugs and to prove |
| properties of functions. A major feature of klee is that it can produce a |
| testcase in the event that it detects a bug.</p></li> |
| |
| <li><p>The <b><a href="https://lld.llvm.org/">LLD</a></b> project is a new |
| linker. That is a drop-in replacement for system linkers |
| and runs much faster.</p></li> |
| |
| <li><p>The <b> |
| <a href="https://github.com/llvm/llvm-project/tree/main/bolt">BOLT</a></b> |
| project is a post-link optimizer. It achieves the improvements by optimizing |
| application's code layout based on execution profile gathered by sampling |
| profiler.</p></li> |
| </ol> |
| |
| <p>In addition to official subprojects of LLVM, there are a broad variety of |
| other projects that <a href="/ProjectsWithLLVM/">use components |
| of LLVM for various tasks</a>. Through these external projects you can use |
| LLVM to compile Ruby, Python, Haskell, Rust, D, PHP, Pure, Lua, Julia, and a number of |
| other languages. A major strength of LLVM is its versatility, flexibility, and |
| reusability, which is why it is being used for such a wide variety of different |
| tasks: everything from doing light-weight JIT compiles of embedded languages |
| like Lua to compiling Fortran code for massive super computers.</p> |
| |
| <p>As much as everything else, LLVM has a broad and friendly community of people |
| who are interested in building great low-level tools. If you are interested in |
| <a href="https://llvm.org/docs/GettingInvolved.html">getting involved</a>, a |
| good first place is to skim the <a |
| href="https://blog.llvm.org">LLVM Blog</a> and join <a href="https://discourse.llvm.org">LLVM Discourse</a>. For information on how to send in a patch, get commit access, and |
| copyright and license topics, please see <a href="docs/DeveloperPolicy.html">the |
| LLVM Developer Policy</a>. |
| </p> |
| |
| </div> |
| |
| </td> |
| |
| <!-- Dividing space between columns --> |
| <td style="width:2%"></td> |
| <!-- Start of the right bar... 359 --> |
| <td valign="top" style="width:35%"> |
| |
| <div class="www_sectiontitle">Latest LLVM Release!</div> |
| |
| <div class="www_text"> |
| <p><b>12 January 2023</b>: LLVM 15.0.7 is now <a href="releases/"><b>available |
| for download</b></a>! LLVM is publicly available under an open source <a |
| href="releases/15.0.0/LICENSE.TXT">License</a>. Also, you might want to |
| check out <a href="docs/ReleaseNotes.html#whatsnew"><b>the new |
| features</b></a> in Git that will appear in the next LLVM release. If |
| you want them early, <a href="releases/">download LLVM</a> through |
| anonymous Git.</p> |
| </div> |
| |
| |
| <div class="www_sectiontitle">Upcoming Events</div> |
| <p> |
| <a href="/devmtg/2023-05/">May 10-11, 2023</a> - EuroLLVM Dev Mtg<br> |
| </p> |
| </div> |
| |
| <div class="www_sectiontitle">ACM Software System Award!</div> |
| |
| <div class="www_text"> |
| <p>LLVM has been awarded the <b>2012 ACM Software System Award</b>! |
| This award is given by ACM to <i>one</i> software system worldwide |
| every year. |
| <!-- |
| and is "<i>Awarded to an institution or individual(s) recognized for |
| developing a software system that has had a lasting influence, |
| reflected in contributions to concepts, in commercial acceptance, |
| or both</i>".--> |
| LLVM is <a href="https://awards.acm.org/software-system/award-recipients"> |
| in highly distinguished company</a>! |
| Click on any of the individual recipients' names on that page for |
| the detailed citation describing the award. |
| </p> |
| </div> |
| |
| <div class="www_sectiontitle">Upcoming Releases</div> |
| |
| <div class="www_text"> |
| |
| <p><b>LLVM Release Schedule:</b></p> |
| <ul> |
| <li> 15.0.x |
| <ul> |
| <li>Sep 6th: 15.0.0 was released</li> |
| <li>Sep 20th: 15.0.1 was released</li> |
| <li>Oct 4th: 15.0.2 was released</li> |
| <li>Oct 18th: 15.0.3 was released</li> |
| <li>Nov 2nd: 15.0.4 was released</li> |
| <li>Nov 16th: 15.0.5 was released</li> |
| <li>Nov 29th: 15.0.6 was released</li> |
| <li>Jan 12th: 15.0.7 was released</li> |
| </ul> |
| <li> 16.0.x |
| <ul> |
| <li>Jan 24th: release/16.x branch</li> |
| <li>Jan 27th: 16.0.0-rc1</li> |
| <li>Feb 7th: 16.0.0-rc2</li> |
| <li>Feb 21st: 16.0.0-rc3</li> |
| <li>Mar 7th: 16.0.0</li> |
| <li>Mar 21st: 16.0.1</li> |
| <li>Apr 4th: 16.0.2</li> |
| <li>Apr 18th: 16.0.3</li> |
| <li>May 2nd: 16.0.4</li> |
| <li>May 16th: 16.0.5</li> |
| </ul> |
| </li> |
| </ul> |
| |
| </div> |
| |
| <div class="www_sectiontitle">Developer Meetings</div> |
| |
| <div class="www_text"> |
| <p>Upcoming:</p> |
| <ul> |
| <li><a href="/devmtg/2023-05/">May 10-11 2023</a></li> |
| </ul> |
| <p>Proceedings from past meetings:</p> |
| <ul> |
| <li><a href="/devmtg/2022-11/">November 8-9 2022</a></li> |
| <li><a href="/devmtg/2022-05/">May 10-11, 2022</a></li> |
| <li><a href="/devmtg/2021-11/">November 16-19, 2021</a></li> |
| <li><a href="/devmtg/2020-09/">October 6-8, 2020</a></li> |
| <li><a href="/devmtg/2019-10/">October 22-23, 2019</a></li> |
| <li><a href="/devmtg/2019-04/">April 8-9, 2019</a></li> |
| <li><a href="/devmtg/2018-10/">October 17-18, 2018</a></li> |
| <li><a href="/devmtg/2018-04/">April 16-17, 2018</a></li> |
| <li><a href="/devmtg/2017-10/">October 18-19, 2017</a></li> |
| <li><a href="/devmtg/2017-03/">March 27-28, 2017</a></li> |
| <li><a href="/devmtg/2016-11/">November 3-4, 2016</a></li> |
| <li><a href="/devmtg/2016-03/">March 17-18, 2016</a></li> |
| <li><a href="/devmtg/2015-10/">October 29-30, 2015</a></li> |
| <li><a href="/devmtg/2015-04/">April 13-14, 2015</a></li> |
| <li><a href="/devmtg/2014-10/">October 28-29, 2014</a></li> |
| <li><a href="/devmtg/2014-04/">April 7-8, 2014</a></li> |
| <li><a href="/devmtg/2013-11/">Nov 6-7, 2013</a></li> |
| <li><a href="/devmtg/2013-04/">April 29-30, 2013</a></li> |
| <li><a href="/devmtg/2012-11/">November 7-8, 2012</a></li> |
| <li><a href="/devmtg/2012-04-12/">April 12, 2012</a></li> |
| <li><a href="/devmtg/2011-11/">November 18, 2011</a></li> |
| <li><a href="/devmtg/2011-09-16/">September 2011</a></li> |
| <li><a href="/devmtg/2010-11/">November 2010</a></li> |
| <li><a href="/devmtg/2009-10/">October 2009</a></li> |
| <li><a href="/devmtg/2008-08/">August 2008</a></li> |
| <li><a href="/devmtg/2007-05/">May 2007</a></li> |
| </ul> |
| </div> |
| |
| <br> |
| |
| <!-- End of the right column --> |
| </td> |
| </tr> |
| </table> |
| |
| <!--#include virtual="footer.incl" --> |