Factory.ai

Open-Source Wikis

/

LLVM

/

LLVM project overview

/

Glossary

llvm/llvm-project

Glossary

LLVM has its own dialect of compiler vocabulary — some terms are widely used across compiler textbooks, and some are specific to this codebase. The following entries are the ones most likely to confuse a new contributor.

Term Meaning
LLVM IR The intermediate representation that flows from front end to back end. Strongly typed, SSA, three-address. Lives as in-memory llvm::Module, bitcode, or textual .ll. See llvm/include/llvm/IR/.
SSA Static Single Assignment. Every value is defined exactly once. The LLVM optimizer relies on SSA invariants.
Module A llvm::Module (llvm/include/llvm/IR/Module.h) is roughly the IR equivalent of one translation unit: a collection of functions, globals, and metadata.
Pass A transformation or analysis over IR (or MachineFunction). Run by the pass manager in llvm/lib/Passes/.
New PM The "new pass manager", the current pass-manager API based on PassManager<> templates and PassBuilder. The "legacy PM" still exists for the codegen pipeline.
MIR Machine IR — MachineFunction, MachineBasicBlock, MachineInstr. The IR used inside the back end after instruction selection. Serializable as .mir YAML. See llvm/include/llvm/CodeGen/.
MC The "machine code" layer — target-independent assembler/disassembler/object-file machinery in llvm/lib/MC/.
MCA LLVM Machine Code Analyzer (llvm/lib/MCA/) — performance analysis tool that simulates a CPU pipeline.
TableGen / .td LLVM's data-description DSL. Used for instruction definitions, register classes, intrinsics, attributes, schedulers, ISel patterns, etc. Source in *.td files; build-time tool is llvm-tblgen (llvm/utils/TableGen/).
TargetMachine / Subtarget Per-target classes describing CPU features and code-generation options (llvm/lib/Target/<Name>/).
GlobalISel A modern instruction-selection framework in llvm/lib/CodeGen/GlobalISel/. Built around MachineIRBuilder and matchers.
SelectionDAG The original instruction selector framework (llvm/lib/CodeGen/SelectionDAG/), still used by most targets.
MLIR Multi-Level Intermediate Representation. A separate IR framework in mlir/ that supports user-defined "dialects".
Dialect An MLIR concept — a namespaced collection of operations, types, and attributes. Examples: llvm, linalg, tensor, func.
Operation / Op The MLIR equivalent of an instruction. Generic mlir::Operation plus dialect-specific C++ wrappers.
lit The LLVM Integrated Tester (llvm/utils/lit/). Drives test files by extracting RUN: directives and shelling out commands.
FileCheck A pattern-matching tool (llvm/utils/FileCheck/, library at llvm/lib/FileCheck/) used by lit tests to assert on compiler output.
opt The LLVM IR optimizer driver (llvm/tools/opt/).
llc The LLVM static codegen driver (llvm/tools/llc/) — runs the back end and emits assembly or object code.
clang driver The user-facing executable that picks subcommands (preprocessor, compiler, assembler, linker) based on the input. Source in clang/lib/Driver/ and clang/tools/driver/.
clangd The LSP language server in clang-tools-extra/clangd/ that powers IDE features.
Sema / AST / CodeGen (in Clang) Three of Clang's main libraries: clang/lib/Sema/ (semantic analysis), clang/lib/AST/ (the C/C++/Objective-C AST), clang/lib/CodeGen/ (lower AST to LLVM IR).
CFE "C front end" — historical alias for Clang. Still appears in commit messages and bug reports.
lld The LLVM linker (lld/). Has separate ports for ELF, COFF, Mach-O, and WebAssembly.
lldb The LLVM debugger (lldb/).
compiler-rt The compiler runtime (compiler-rt/) — provides intrinsics like __udivsi3 plus the sanitizer runtimes (ASan, TSan, MSan, UBSan, etc.).
libc++ / libcxx LLVM's C++ standard library implementation (libcxx/).
libc++abi / libcxxabi LLVM's C++ ABI runtime (libcxxabi/) that pairs with libc++.
libunwind LLVM's Itanium-ABI stack-unwinding library (libunwind/).
libc LLVM's C standard library (libc/) — distinct from glibc/musl.
BOLT Binary Optimization and Layout Tool (bolt/) — a post-link optimizer that rewrites code layout based on profile data.
ORC / ORCv2 "On-Request Compilation". The current LLVM JIT framework (llvm/lib/ExecutionEngine/Orc/ and the orc-rt/ runtime).
ThinLTO A scalable form of link-time optimization (llvm/lib/LTO/).
DTLTO Distributed ThinLTO (llvm/lib/DTLTO/) — runs ThinLTO across a build farm.
PGO Profile-Guided Optimization. Source in llvm/lib/Transforms/Instrumentation/ and compiler-rt/lib/profile.
PDB / DWARF Debug-info formats. DWARF code: llvm/lib/DebugInfo/. PDB code lives there too.
CIR Clang IR — an MLIR dialect Clang can emit between AST and LLVM IR. See clang/lib/CIR/.
Polly A polyhedral loop optimizer (polly/) that hooks into LLVM as a transform-pass plugin.
OpenMP Both the language extension and a runtime. Runtime lives in openmp/; device-side execution lives in offload/.
SYCL A Khronos C++ programming model for accelerators. The libsycl/ subproject is LLVM's runtime implementation.
OpenCL C A C dialect for accelerator kernels. The libclc/ library implements its standard library.
flang-rt The Fortran runtime (flang-rt/) used by code that Flang compiles.
target triple A <arch>-<vendor>-<os>-<env> string that fully identifies a compilation target (e.g., x86_64-unknown-linux-gnu, aarch64-apple-darwin).
ABI Application Binary Interface — the rules for how compiled code interoperates (calling conventions, struct layout, name mangling, exception unwinding).
maintainer The person or persons responsible for an area, listed in the per-subproject Maintainers.md. They merge and review code in their area. See the LLVM developer policy.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Glossary – LLVM wiki | Factory