网站地图
下载!
搜索本站
实用链接
发布邮件
由以下团队维护
llvm-admin 团队
|
LLVM 特性
用于 C 和 C++ 的 LLVM 编译器系统 包括以下内容
- C、C++、Objective-C、Fortran 等的前端。它们支持 ANSI 标准的 C 和 C++ 语言。此外,还支持许多 GCC 扩展。
- LLVM 指令集的稳定实现,它既充当在线和离线代码表示,又充当汇编 (ASCII) 和字节码 (二进制) 读取器和写入器,以及验证器。
- 强大的 pass 管理系统,它可以根据 pass 之间的依赖关系自动对 pass(包括分析、转换和代码生成 pass)进行排序,并对其进行流水线处理以提高效率。
- 范围广泛的全局标量优化。
- 链接时过程间优化框架,具有丰富的分析和转换集,包括复杂的全程序指针分析、调用图构建以及对 profile-guided 优化的支持。
- 易于重定向的代码生成器,目前支持 X86、X86-64、PowerPC、PowerPC-64、ARM、Thumb、SPARC、Alpha、CellSPU、MIPS、MSP430、SystemZ、WebAssembly 和 XCore。
- 即时 (JIT) 代码生成系统,目前支持 X86、X86-64、ARM、AArch64、Mips、SystemZ、PowerPC 和 PowerPC-64。
- 支持生成 DWARF 调试信息。
- 类似于 gprof 的性能分析系统。
- 包含许多基准代码和应用程序的测试框架。
- API 和调试工具,以简化 LLVM 组件的快速开发。
LLVM 系统的优势
- LLVM 使用具有严格定义语义的简单 低级语言。
- 它包括 C 和 C++ 的前端。Java、Scheme 和其他语言的前端正在开发中。
- 它包括一个积极的优化器,包括标量、过程间、profile-driven 和一些简单的循环优化。
- 它支持 生命周期编译模型,包括链接时、安装时、运行时和离线优化。
- LLVM 完全支持 精确的垃圾回收。
- LLVM 代码生成器相对容易重定向,并使用强大的目标描述语言。
- LLVM 具有广泛的 文档,并托管了许多各种 项目。
- 许多第三方用户声称 LLVM 易于使用和开发。例如,(现已删除的)Stacker 前端是由一个对 LLVM 一无所知的人在 4 天内编写的。此外,LLVM 还提供工具来 简化开发。
- LLVM 正在积极开发中,并且不断扩展、增强和改进。请参阅左侧栏的状态更新,以查看开发速度。
- LLVM 在 OSI 批准的 “Apache License Version 2.0” 许可证下免费提供。
- LLVM 目前被许多商业、非营利或学术实体使用,他们贡献了许多扩展和新功能。
LLVM 受众
LLVM 可用于许多不同类型的项目。如果您是以下人员,您可能会对 LLVM 感兴趣
- 对 C 和 C++ 程序的编译时、链接时(过程间)和运行时转换感兴趣的编译器研究人员。
- 对可移植的、语言无关的指令集和编译框架感兴趣的虚拟机研究人员/开发人员。
- 对编译器/硬件技术感兴趣的架构研究人员。
- 对静态分析或 instrumentation 感兴趣的安全研究人员。
- 对快速原型化编译器转换的系统感兴趣的讲师或开发人员。
- 想要从您的代码中获得更好性能的最终用户。
想了解更多?
您可以在线浏览文档,在您的网络浏览器中尝试 LLVM,或下载源代码。
|