The LLVM Compiler Infrastructure Project
The
LLVM
Compiler Infrastructure
Site Map:
Overview
Features
Documentation
Command Guide
FAQ
Publications
LLVM Projects
Open Projects
LLVM Users
Bug tracker
LLVM Logo
Blog
Meetings
LLVM Foundation
Download!
Download now:
LLVM 22.1.4
All Releases
APT Packages
RPM Snapshots
Pre-releases
View the open-source
license
Search this Site
Useful Links
Forums
LLVM Discourse
Mailing Lists:
Commits List
Discord (Real-time Chat):
Discord
Calendar:
LLVM Community Calendar
Dev. Resources:
doxygen
Sources (GitHub)
Code Review
Blog
Bug tracker
Buildbot
Green Dragon
LNT
Scan-build
llvm-cov
Compile-time tracker
Release Emails
22.1.4:
Apr 2026
22.1.3:
Apr 2026
22.1.2:
Mar 2026
22.1.1:
Mar 2026
22.1.0:
Feb 2026
21.1.8:
Dec 2025
21.1.7:
Dec 2025
21.1.6:
Nov 2025
21.1.5:
Nov 2025
21.1.4:
Oct 2025
21.1.3:
Oct 2025
21.1.2:
Sep 2025
21.1.1:
Sep 2025
21.1.0:
Aug 2025
All Announcements
Maintained by the
llvm-admin team
LLVM Overview
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.
LLVM began as a
research
project
at
the
University of Illinois
, 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
commercial and open source
projects
as well as being widely used in
academic research
. Code
in the LLVM project is licensed under the
"Apache 2.0 License with LLVM exceptions"
The primary sub-projects of LLVM are:
The
LLVM Core
libraries provide a modern source- and
target-independent
optimizer
, along with
code generation support
for many
popular CPUs (as well as some less common ones!) These libraries are built
around a
well specified
code representation
known as the LLVM intermediate representation ("LLVM IR"). The LLVM Core
libraries are
well documented
, and it is particularly
easy to invent your own language (or port an existing compiler) to use
LLVM as an optimizer and code generator
Clang
is an "LLVM native"
C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles,
extremely useful
error
and warning messages
and to provide a platform for building great
source level tools.
The
Clang Static Analyzer
and
clang-tidy
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.
Flang
is a modern
Fortran compiler with an associated runtime, which aims to generate
high-performance code, and support Fortran 2023 and all official Fortran
standards going back to Fortran 77, including a number of widely-used
extensions
. Flang
supports
OpenMP
for both CPUs and GPUs.
The
LLDB
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.
The
libc++
and
libc++ ABI
projects provide
a standard conformant and high-performance implementation of the C++
Standard Library, including full support for C++11 and C++14.
The
libc
project provides a
high-performance, standards-conformant implementation of the C Standard
Library, fully integrated with LLVM. It delivers optimized performance and
comprehensive support for modern C standards, ensuring a reliable and
efficient foundation for C applications.
The
compiler-rt
project
provides highly tuned implementations of the low-level code generator
support routines like "
__fixunsdfdi
" 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
AddressSanitizer
ThreadSanitizer
MemorySanitizer
and
DataFlowSanitizer
The
MLIR
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.
The
OpenMP
subproject
provides an
OpenMP
runtime for use with the
OpenMP implementation in Clang and Flang.
The
polly
project implements
a suite of cache-locality optimizations as well as auto-parallelism and
vectorization using a polyhedral model.
The
libclc
project aims to
implement the OpenCL standard library.
The
klee
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.
The
LLD
project is a new
linker. That is a drop-in replacement for system linkers
and runs much faster.
The
BOLT
project is a post-link optimizer. It achieves the improvements by optimizing
application's code layout based on execution profile gathered by sampling
profiler.
In addition to official subprojects of LLVM, there are a broad variety of
other projects that
use components
of LLVM for various tasks
. 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.
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
getting involved
, a
good first place is to skim the
LLVM Blog
and join
LLVM Discourse
. For information on how to send in a patch, get commit access, and
copyright and license topics, please see
the
LLVM Developer Policy
Latest LLVM Release!
21 April 2026
: LLVM 22.1.4 is now
available
for download
! LLVM is publicly available under an open source
License
. Also, you might want to
check out
the new
features
in Git that will appear in the next LLVM release. If
you want them early,
download LLVM
through
anonymous Git.
Upcoming Events
2026 EuroLLVM Developers' Meeting
ACM Software System Award!
LLVM has been awarded the
2012 ACM Software System Award
This award is given by ACM to
one
software system worldwide
every year.
LLVM is
in highly distinguished company
Click on any of the individual recipients' names on that page for
the detailed citation describing the award.
Upcoming Releases
LLVM Release Schedule:
22.1.x
Tue Jan 13th, 2026: release/22.x branch
Fri Jan 16th, 2026: 22.1.0-rc1 was released
Tue Jan 27th, 2026: 22.1.0-rc2 was released
Tue Feb 10th, 2026: 22.1.0-rc3 was released
Tue Feb 24th, 2026: 22.1.0 was released
Tue Mar 10th, 2026: 22.1.1 was released
Tue Mar 24th, 2026: 22.1.2 was released
Tue Apr 7th, 2026: 22.1.3 was released
Tue Apr 21st, 2026: 22.1.4 was released
Tue May 5th, 2026: 22.1.5
Tue May 19th, 2026: 22.1.6
Tue Jun 2nd, 2026: 22.1.7
Tue Jun 16th, 2026: 22.1.8
Tue Jun 30th, 2026: 22.1.9 (if necessary)
23.1.x
Tue Jul 14th, 2026: release/23.x branch
Fri Jul 17th, 2026: 23.1.0-rc1
Tue Jul 28th, 2026: 23.1.0-rc2
Tue Aug 11th, 2026: 23.1.0-rc3
Tue Aug 25th, 2026: 23.1.0
Tue Sep 8th, 2026: 23.1.1
Tue Sep 22nd, 2026: 23.1.2
Tue Oct 6th, 2026: 23.1.3
Tue Oct 20th, 2026: 23.1.4
Tue Nov 3rd, 2026: 23.1.5
Tue Nov 17th, 2026: 23.1.6
Tue Dec 1st, 2026: 23.1.7
Tue Dec 15th, 2026: 23.1.8
Tue Dec 29th, 2026: 23.1.9 (if necessary)
Developer Meetings
Upcoming:
April 13-15, 2026
Proceedings from past meetings:
October 27-29, 2025
June 10, 2025
April 14-16, 2025
October 22-24, 2024
April 10-11, 2024
October 9-11, 2023
May 10-11, 2023
November 8-9, 2022
May 10-11, 2022
November 16-19, 2021
October 6-8, 2020
October 22-23, 2019
April 8-9, 2019
October 17-18, 2018
April 16-17, 2018
October 18-19, 2017
March 27-28, 2017
November 3-4, 2016
March 17-18, 2016
October 29-30, 2015
April 13-14, 2015
October 28-29, 2014
April 7-8, 2014
Nov 6-7, 2013
April 29-30, 2013
November 7-8, 2012
April 12, 2012
November 18, 2011
September 2011
November 2010
October 2009
August 2008
May 2007