LLVM

LLVM

LLVM (Low Level Virtual Machine) is an open source compiler infrastructure project that provides reusable components for building compiler front ends and back ends. It uses an intermediate representation that allows for optimization and translation to multiple targets.
LLVM image
compiler optimization intermediate-representation open-source

LLVM (Low Level Virtual Machine)

Open source compiler infrastructure project providing reusable components for building compiler front ends and back ends, utilizing an intermediate representation for optimization and target translation

What is LLVM?

LLVM (Low Level Virtual Machine) is an open source compiler infrastructure project that provides reusable components for building compiler front ends and back ends. It uses an intermediate representation (IR) that allows for optimization and translation to multiple targets.

Some key aspects of LLVM:

  • Focused on providing high-quality optimizing compiler components
  • Uses a common IR (LLVM IR) that front ends can target and back ends can consume
  • Modular by design, allowing reuse across multiple compiler projects
  • Performs aggressive interprocedural optimizations
  • Supports multiple source languages (C/C++, Objective-C, Swift, Rust, etc.) and CPU architectures (x86, ARM, PowerPC, etc.)
  • Used as the compiler framework for major projects like Clang, Rust, Julia, and Swift
  • Implemented in C++ with APIs available in various languages
  • Available under the open source BSD-style LLVM License

Overall, LLVM powers much of the latest generation of compilers and runtimes through its intermediate representation and code optimization capabilities.

LLVM Features

Features

  1. Modular design
  2. Multiple frontends
  3. Multiple backends
  4. Intermediate representation
  5. Code optimization
  6. JIT compilation

Pricing

  • Open Source

Pros

High performance

Portable

Permissive licensing

Wide adoption

Active development

Cons

Complex codebase

Steep learning curve

Limited documentation


The Best LLVM Alternatives

Top Development and Compiler Infrastructure and other similar apps like LLVM


GNU Compiler Collection icon

GNU Compiler Collection

The GNU Compiler Collection (GCC) is an open source compiler system developed by the GNU Project for compiling multiple programming languages. Some key points about GCC:Supports compilation of popular languages like C, C++, Objective-C, Fortran, Ada, and Java.Actively developed and maintained by a large community of contributors.Aims to produce fast...
GNU Compiler Collection image
Portable C Compiler icon

Portable C Compiler

The Portable C Compiler (PCC) is a free, open-source and retargetable C compiler focused on providing portability, simplicity, speed, and small size. Developed originally at Bell Labs in the 1970s, PCC has evolved over decades of work by various contributors into a mature C codebase.Some key features and goals of...
Open64 icon

Open64

Open64 is an open-source, optimizing compiler for C, C++, and Fortran programs targeted at high-performance computing systems like workstations, servers, and supercomputers. It was originally developed by SGI and is now maintained by the Open64 Foundation.Key features of Open64 include support for multiple architectures (x86-64, IA64, ARM, MIPS, PowerPC), operating...
Open64 image