llvm
Low Level Virtual Machine
Low Level Virtual Machine (LLVM) is: 1. A compilation strategy designed to enable effective program optimization across the entire lifetime of a program. LLVM supports effective optimization at compile time, link-time (particularly interprocedural), run-time and offline (i.e., after software is installed), while remaining transparent to developers and maintaining compatibility with existing build scripts. 2. A virtual instruction set - LLVM is a low-level object code representation that uses simple RISC-like instructions, but provides rich, language-independent, type information and dataflow (SSA) information about operands. This combination enables sophisticated transformations on object code, while remaining light-weight enough to be attached to the executable. This combination is key to allowing link-time, run-time, and offline transformations. 3. A compiler infrastructure - LLVM is also a collection of source code that implements the language and compilation strategy. The primary components of the LLVM infrastructure are a GCC-based C and C++ front-end, a link-time optimization framework with a growing set of global and interprocedural analyses and transformations, static back-ends for many popular (and some obscure) architectures, a back-end which emits portable C code, and a Just-In-Time compilers for several architectures. 4. LLVM does not imply things that you would expect from a high-level virtual machine. It does not require garbage collection or run-time code generation (In fact, LLVM makes a great static compiler!). Note that optional LLVM components can be used to build high-level virtual machines and other systems that need these services.
homepage ↗ github: llvm/llvm-project cpe: cpe:/a:llvm:llvm
Available in
| Overlay | Newest | Ebuilds | Last activity | |
|---|---|---|---|---|
| gentoo gitweb ↗ | 24.0.0_pre20260725 | 13 | 18 h | details › |
| lastrodamo Codeberg ↗ | 16.0.6-r5 | 1 | 6 d | details › |
Versions & arches
| Version | Overlay | amd64 | arm64 | x86 | ppc64 | riscv | arm | arm64-macos | loong | mips | ppc | sparc | x64-macos | Committed | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 24.0.0.9999 LIVE | gentoo | follows upstream — no keywords | — | view · download · history ↗ | |||||||||||
| 24.0.0_pre20260725 | gentoo | amd64 untested | arm64 untested | x86 untested | ppc64 untested | riscv untested | arm untested | arm64-macos untested | loong untested | mips untested | ppc untested | sparc untested | x64-macos untested | — | view · download · history ↗ |
| 24.0.0_pre20260716 | gentoo | amd64 untested | arm64 untested | x86 untested | ppc64 untested | riscv untested | arm untested | arm64-macos untested | loong untested | mips untested | ppc untested | sparc untested | x64-macos untested | — | view · download · history ↗ |
| 23.1.0.9999 LIVE | gentoo | follows upstream — no keywords | — | view · download · history ↗ | |||||||||||
| 23.1.0_pre20260724 | gentoo | amd64 untested | arm64 untested | x86 untested | ppc64 untested | riscv untested | arm untested | arm64-macos untested | loong untested | mips untested | ppc untested | sparc untested | x64-macos untested | — | view · download · history ↗ |
| 23.0.0_pre20260716 | gentoo | amd64 untested | arm64 untested | x86 untested | ppc64 untested | riscv untested | arm untested | arm64-macos untested | loong untested | mips untested | ppc untested | sparc untested | x64-macos untested | — | view · download · history ↗ |
| 23.0.0_pre20260707 | gentoo | amd64 untested | arm64 untested | x86 untested | ppc64 untested | riscv untested | arm untested | arm64-macos untested | loong untested | mips untested | ppc untested | sparc untested | x64-macos untested | — | view · download · history ↗ |
| 22.1.8 | gentoo | amd64 stable | arm64 stable | x86 stable | ppc64 stable | riscv testing | arm stable | arm64-macos testing | loong testing | mips testing | ppc stable | sparc testing | x64-macos testing | — | view · download · history ↗ |
| 21.1.8 | gentoo | amd64 stable | arm64 stable | x86 stable | ppc64 stable | riscv testing | arm stable | arm64-macos testing | loong testing | mips testing | ppc stable | sparc testing | x64-macos testing | — | view · download · history ↗ |
| 20.1.8 | gentoo | amd64 stable | arm64 stable | x86 stable | ppc64 stable | riscv testing | arm stable | arm64-macos testing | loong testing | mips testing | ppc stable | sparc testing | x64-macos testing | — | view · download · history ↗ |
| 19.1.7 | gentoo | amd64 stable | arm64 stable | x86 stable | ppc64 stable | riscv testing | arm stable | arm64-macos testing | loong testing | mips testing | ppc stable | sparc testing | x64-macos testing | — | view · download · history ↗ |
| 18.1.8-r6 | gentoo | amd64 stable | arm64 stable | x86 stable | ppc64 stable | riscv testing | arm stable | arm64-macos testing | loong testing | mips testing | ppc stable | sparc testing | x64-macos testing | — | view · download · history ↗ |
| 17.0.6-r3 | gentoo | amd64 stable | arm64 stable | x86 stable | ppc64 stable | riscv testing | arm stable | arm64-macos testing | loong testing | mips untested | ppc stable | sparc testing | x64-macos testing | — | view · download · history ↗ |
| 16.0.6-r5 ≈ | lastrodamo | amd64 stable | arm64 stable | x86 stable | ppc64 stable | riscv testing | arm stable | arm64-macos testing | loong testing | mips untested | ppc stable | sparc testing | x64-macos testing | 6 d | view · download · history ↗ |
Use flags of 24.0.0_pre20260725
- +binutils-plugin Build the binutils plugin
- +debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
- debuginfod Install llvm-debuginfod (requires net-misc/curl and dev-cpp/cpp-httplib)
- doc Build and install the HTML documentation and regenerate the man pages
- exegesis Enable performance counter support for llvm-exegesis tool that can be used to measure host machine instruction characteristics
- libedit Use the libedit library (replacement for readline)
- +libffi Enable support for Foreign Function Interface library
- test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
- xml Add support for XML files
- z3 Enable support for sci-mathematics/z3 constraint solver
- zstd Enable support for ZSTD compression
- llvm_targets_AArch64
- llvm_targets_AMDGPU
- llvm_targets_ARM
- llvm_targets_AVR
- llvm_targets_BPF
- llvm_targets_Hexagon
- llvm_targets_Lanai
- llvm_targets_LoongArch
- llvm_targets_Mips
- llvm_targets_MSP430
- llvm_targets_NVPTX
- llvm_targets_PowerPC
- llvm_targets_RISCV
- llvm_targets_Sparc
- llvm_targets_SPIRV
- llvm_targets_SystemZ
- llvm_targets_VE
- llvm_targets_WebAssembly
- llvm_targets_X86
- llvm_targets_XCore
- llvm_targets_ARC
- llvm_targets_CSKY
- llvm_targets_DirectX
- llvm_targets_M68k
- llvm_targets_Xtensa
8 expansion flags (python targets, ABIs, cpu flags…)
- abi_x86_32
- abi_x86_64
- abi_x86_x32
- abi_mips_n32
- abi_mips_n64
- abi_mips_o32
- abi_s390_32
- abi_s390_64