llvm
最近更新 2026年10月5日
AI 爬虫读取
1次请求
1家公司- Anthropic1
- 词条页
- 1
- 争议页
- 0
- JSON · MD
- 0
- 首次读取
- 2026年11月4日
- 最近读取
- 2026年11月4日
统计自 2026年10月28日 · 数据来自本站服务器日志
概览
LLVM 是一个开源编译器基础设施项目,其组件被用于构建编译器、编程语言实现、运行时、调试器、静态分析系统以及其他开发者工具。它最初是伊利诺伊大学厄巴纳-香槟分校的一个研究项目,最初名为 Low Level Virtual Machine。Chris Lattner 创建了该项目,并作为其博士研究的一部分开发了早期架构。尽管该缩写的原始全称描述的是虚拟机,但项目后来将 LLVM 作为名称而非缩写,以反映该平台更广泛的作用。 该项目围绕可重用的中间表示以及一组模块化库和工具进行组织。LLVM IR 提供了一种通用形式,前端可以通过它翻译源程序,后端可以为不同的处理器架构生成机器码。项目包括 LLVM 优化器和代码生成基础设施、面向 C 族语言的 Clang、LLDB 调试器、LLD 链接器、compiler-rt 运行时组件、libc++、MLIR 以及其他子项目。这些组件可以以不同方式组合,而不要求开发者使用单一的整体编译器产品。 LLVM 的重要性来自其可移植性、优化框架、可扩展性以及宽松的开源许可。它支持广泛的目标,包括主要的桌面、服务器、移动、嵌入式和加速器架构。其工具被用于商业和开源产品、操作系统、编程语言、研究系统和教育。Apple 广泛采用了 LLVM 技术,包括通过 Clang 和 Swift 工具链,而许多其他组织和语言社区则将 LLVM 用作后端或编译器开发的基础。 LLVM 项目不是一家传统公司,也不销售单一品牌的终端用户产品。开发由全球个人贡献者、大学、技术公司和其他组织组成的社区进行。治理已从最初的高校研究环境演变为具有技术指导和代码审查流程的社区项目。LLVM 基金会通过活动、社区项目和管理活动支持该生态系统,但 LLVM 本身仍然是一个开源项目,而不是一家上市公司。 如今,LLVM 最好被理解为一个技术平台和生态系统品牌。其主要受众是编译器工程师、编程语言开发者、操作系统和硬件供应商、工具链维护者、研究人员以及高级软件开发者。其组件继续随着新的处理器架构、语言特性、调试模型、优化技术和中间表示研究而演进。
沿革
LLVM 起源于伊利诺伊大学厄巴纳-香槟分校,是由 Chris Lattner 领导的研究项目。首个公开版本于 2003 年发布,此前基于中间表示的可扩展编译器架构已进行早期开发。项目最初的全称是 Low Level Virtual Machine,但社区后来将 LLVM 视为一个独立名称,因为该技术已经超越了传统虚拟机设计的范畴。 该项目的核心架构思想是将语言特定的前端与目标特定的优化和代码生成分离。前端可以将源语言翻译为 LLVM 的中间表示,之后共享的优化遍和后端可以为不同的处理器目标生成代码。这种设计允许新语言和硬件目标重用大量基础设施。它也使 LLVM 适用于研究和生产工具链。 在 2000 年代,LLVM 从大学研究项目发展成为被广泛采用的开源编译器平台。Clang 的加入和成熟为生态系统提供了现代 C、C++ 和 Objective-C 前端,而 LLVM 的优化器和代码生成器则作为后端。其他项目扩展了平台范围:compiler-rt 提供运行时组件;libc++ 提供 C++ 标准库实现;LLDB 提供基于 LLVM 技术的调试器;LLD 提供模块化链接器。 Apple 成为最著名的行业采用者和贡献者之一。基于 LLVM 的技术被集成到 Apple 的开发者工具和操作系统工具链中,LLVM 对 Swift 的开发也变得重要。采用范围扩展到其他编程语言项目、操作系统、硬件公司、云和系统软件供应商以及学术研究。该项目宽松的许可和模块化架构鼓励了在专有和开源产品中的使用。 随着参与扩大,LLVM 的治理和开发变得越来越面向社区。代码通过公开审查、项目特定维护者、发布流程和技术治理结构进行开发。LLVM 基金会支持更广泛的社区,包括会议和相关外展,但它不是拥有商业 LLVM 产品的传统母公司。 该项目通过 MLIR 继续扩大范围,MLIR 是用于构建可重用和可扩展中间表示及编译器转换的基础设施。MLIR 特别适用于异构计算、领域特定语言、机器学习系统和硬件特定编译。LLVM 还继续扩展目标支持、优化能力、调试设施、运行时和开发者工具。 因此,LLVM 当前的身份是一个生态系统,而不是单个可执行文件。开发者可以只使用一个组件,例如 Clang 或 LLDB,也可以将多个组件组装成完整工具链。其影响体现在现代语言实现、操作系统开发环境、移动和桌面工具链、嵌入式系统以及面向硬件的软件栈中。该项目仍然活跃,由全球维护,并在其发布的治理和许可框架下开放贡献。
- 2024
LLVM 18 发布代
[7]LLVM 18.1.0 标志着一个涵盖核心基础设施及相关编译器工具的主要发布代。
- 2017
MLIR 项目推出
[5]MLIR 作为跨领域和硬件目标的可重用中间表示及编译器转换框架被推出。
- 2014
LLVM 基金会成立
[6]LLVM 基金会成立,通过行政、教育和生态系统活动支持项目及其社区。
- 2007
Clang 开发启动
[4]Clang 开发建立了面向 C 族语言的基于 LLVM 的前端,后来成为该项目最知名的组件之一。
- 2005
LLVM 项目采用更广泛的生态系统模式
[2]LLVM 开发从最初的研究编译器扩展到可重用基础设施以及不断增长的语言和工具链组件集合。
- 2003
首个公开 LLVM 版本发布
[2]该项目进行了早期公开发布,并开始发展为可重用的开源编译器基础设施平台。
- 2000
LLVM 研究项目启动
[3]Chris Lattner 在伊利诺伊大学开始 LLVM 相关研究,开发以中间表示为核心的可扩展编译器架构。
产品与定位
编译器基础设施 · 2003
LLVM Core
LLVM Core 提供中间表示、优化器、代码生成基础设施、目标支持、库和命令行实用程序,构成更广泛项目的基础。它允许前端和其他编译器系统共享优化遍和机器码生成,同时保留针对不同架构的能力。
编译器前端 · 2007
Clang
Clang 是面向 C、C++、Objective-C 及相关语言的基于 LLVM 的编译器前端。它既可用作独立编译器驱动程序,也可作为集成开发环境、静态分析、重构和语言工具的基础。其诊断和工具接口是其生态系统价值的主要部分。
调试器 · 2010
LLDB
LLDB 是作为 LLVM 项目一部分构建的调试器。它为编译后的程序提供调试功能,并设计为使用 LLVM 库和通用工具链基础设施。LLDB 用于开发环境和操作系统工具链,包括支持 C 族语言和其他 LLVM 支持语言的环境。
链接器 · 2012
LLD
LLD 是 LLVM 项目的链接器。它被设计为快速、模块化的链接器,支持多种目标文件格式和目标平台。LLD 可作为基于 LLVM 的工具链的一部分使用,旨在为平台特定链接器提供通用且积极维护的替代方案。
多级中间表示框架 · 2017
MLIR
MLIR 提供用于设计和转换多级中间表示的基础设施。它面向编译器、领域特定语言、机器学习系统、异构计算和专用硬件。MLIR 可以与 LLVM 互操作,同时支持比传统低级 LLVM IR 更高层或更领域特定的抽象。
C++ 标准库 · 2009
libc++
libc++ 是 LLVM 项目对 C++ 标准库的实现。它面向现代 C++ 语言和库标准设计,通常与 Clang 和基于 LLVM 的工具链配合使用。该项目包括库实现以及标准符合性、可移植性和性能的相关支持。
品牌决策
2017
采用 MLIR 作为互补的编译器基础设施项目战略背景
编译器系统越来越需要多个抽象层次以及针对机器学习和异构硬件等领域的专用表示。
采取的行动
LLVM 社区推出 MLIR,作为构建可扩展中间表示和转换的框架,可与基于 LLVM 的低层编译连接。
后续影响
MLIR 成为 LLVM 生态系统中活跃的一部分,并被需要领域特定或多级编译器基础设施的项目使用。
2007
开发 Clang 作为 LLVM 原生的 C 族前端新品背景
该项目需要一个现代、模块化的前端,能够使用 LLVM 的优化器和代码生成基础设施,同时提供强大的诊断和工具支持。
采取的行动
LLVM 贡献者开始为 C 族语言开发 Clang,随后将其集成到更广泛的 LLVM 工具链中。
后续影响
Clang 成为 LLVM 的主要组件,并成为编译器驱动程序、语言工具、静态分析以及商业和开源开发环境的基础。
近期事件
- 2024
产品发布 · 产品换代
- 2023
产品发布 · 产品换代
来源8 个来源
- 1LLVM Project official websitellvm.org
- 2LLVM Project: Projects With LLVMllvm.org
- 3LLVM Project branding informationllvm.org
- 4Clang official documentation and project siteclang.llvm.org
- 5MLIR official project sitemlir.llvm.org
- 6LLVM Foundationfoundation.llvm.org
- 7LLVM 18 release generationreleases.llvm.org
- 8LLVM Project releases version 17.0.0releases.llvm.org
引用本词条: 请引用规范词条页。 /brand-wiki/llvm · 编辑方针 · 词条如何编纂