LLVM Project 是一套模块化、可复用的编译器与工具链技术合集,包含 LLVM 核心、Clang 前端、LLD 链接器、libc++ 标准库与 MLIR 等组件。
- llvmorg-23.1.4
- 发布于
- 8 天前
- 41,226
- 星标
- 1,511,768
- 下载
- 同步于
- 15 小时前
最新版本
llvmorg-23.1.42026年10月20日 21:03下载慢?可在上方随时切换镜像源
项目说明
项目概述
LLVM Project 由 LLVM 基金会社区维护,是现代编译基础设施事实上的基石:苹果、Google 到 AMD 的生产编译器都构建在它之上。这个 monorepo 收纳了全部子项目源码——中间表示与优化核心 LLVM、C 家族前端 Clang、C++ 标准库 libc++、快速链接器 LLD、调试器 LLDB、多层级 IR 框架 MLIR、Fortran 前端 Flang、OpenMP 运行时与多目标优化器 Polly 等。
| 项目 | 内容 |
|---|---|
| 形态 | 编译器与工具链组件合集(monorepo) |
| 覆盖语言 | C / C++ / Objective-C / Objective-C++ 经 Clang 编译 |
| 许可 | Apache 2.0(含 LLVM 例外条款),见 LICENSE.TXT |
| 主目录 | llvm / clang / lld / lldb / mlir / flang / libcxx 等 |
| 社区 | Discourse 论坛、Discord、Office Hours |
把「源代码变成高效机器码」这件事拆成一个个可复用的模块。
核心组件
- LLVM 核心:中间表示(bitcode)、优化器与代码生成,附带汇编器、反汇编器与 bitcode 分析工具
- Clang:C、C++、Objective-C、Objective-C++ 前端,先编译到 LLVM bitcode 再生成目标文件,以诊断信息与标准符合度著称
- LLD:内置于 LLVM 的快速链接器,可替代 GNU ld 等传统链接器
- libc++ / libc++abi:高性能 C++ 标准库及其运行时
- LLDB:与 Clang 共享表达式解析的调试器
- MLIR:多层中间表示框架,AI 编译器与领域 DSL 的地基
- 运行时家族:compiler-rt、libunwind、openmp、libc 等执行环境组件
集成方式
- 作为工具链使用:Clang 加 LLD 可直接替换现有 C/C++ 构建的编译器与链接器,
cmake -DCMAKE_C_COMPILER=clang即可切入 - 作为库链接:LLVM 以库族发布,
llvm-config --cxxflags --libs输出对接所需参数,ORC JIT 可把 IR 直接在内存里跑起来 - 作为平台扩展:MLIR 自定义方言、Clang 插件与 pass 插件是常见的三方扩展点
获取与构建
- 执行
git clone https://github.com/llvm/llvm-project(仓库体积巨大,建议浅克隆) - 构建:
cmake -G Ninja -S llvm -B build -DCMAKE_BUILD_TYPE=Release && ninja -C build - 入门与贡献指南见 llvm.org/docs 的 Getting Started 与 Contributing 页面
适用场景
- 语言与编译器研究者
- 需要自研 DSL 或 AI 编译栈的工程团队
- 追求链接速度与优化质量的 C/C++ 项目
- 工具链发行版与交叉编译环境维护者
环境要求
| 项目 | 要求 |
|---|---|
| 构建系统 | CMake,配 Ninja 或 Make |
| 语言标准 | C++17 |
| 参考 | 具体编译器与版本要求见官方 Getting Started |
注意事项
- 仓库极大:完整克隆超过 4 GB,建议
--depth 1浅克隆或按需 sparse-checkout - 全量构建昂贵:完整构建 LLVM 加 Clang 需要数十分钟到数小时,日常开发可只启用
LLVM_ENABLE_PROJECTS=clang - 发版节奏:每年发布两个大版本
历史版本
排序