Features

Table of Contents

LLVM Features

The LLVM compiler system for C and C++ includes the following:

Strengths of the LLVM System

  1. LLVM uses a simple low-level language with strictly defined semantics.
  2. It includes front-ends for C and C++. Front-ends for Java, Scheme, and other languages are in development.
  3. It includes an aggressive optimizer, including scalar, interprocedural, profile-driven, and some simple loop optimizations.
  4. It supports a life-long compilation model, including link-time, install-time, run-time, and offline optimization.
  5. LLVM has full support for accurate garbage collection.
  6. The LLVM code generator is relatively easy to retarget, and makes use of a powerful target description language.
  7. LLVM has extensive documentation and has hosted many projects of various sorts.
  8. Many third-party users have claimed that LLVM is easy to work with and develop for. For example, the (now removed) Stacker front-end was written in 4 days by someone who started knowing nothing about LLVM. Additionally, LLVM has tools to make development easier.
  9. LLVM is under active development and is constantly being extended, enhanced and improved. See the status updates on the left bar to see the rate of development.
  10. LLVM is freely available under an OSI-approved “Apache License Version 2.0” license.
  11. LLVM is currently used by many commercial, non-profit or academic entities, who contribute many extensions and new features.

LLVM Audience

LLVM can be used in many different kinds of projects. You might be interested in LLVM if you are:

Want to Know More?

You can browse the documentation online, try LLVM in your web browser, or download the source code.