The LLVM Compiler Infrastructure Projecthttps://llvm.org/Features.html

LLVM 功能

C 和 C++的LLVM 编译器系统包括以下内容:

  • C、C++、Objective-C、Fortran 等的前端。它们支持 ANSI 标准的 C 和 C++ 语言。此外,还支持许多 GCC 扩展。
  • LLVM 指令集的稳定实现,它同时用作在线和离线代码表示,以及汇编 (ASCII) 和字节码(二进制)读取器和写入器,以及验证器。
  • 一个强大的通道管理系统,可以根据它们的依赖关系自动对通道(包括分析、转换和代码生成通道)进行排序,并将它们流水线化以提高效率。
  • 广泛的全局标量优化。
  • 一个链接时过程间优化框架,具有丰富的分析和转换集,包括复杂的整个程序指针分析、调用图构建以及对配置文件引导优化的支持。
  • 一个易于重定向的代码生成器,目前支持 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 的分析系统。
  • 具有许多基准代码和应用程​​序的测试框架。
  • 用于简化 LLVM 组件的快速开发的 API 和调试工具。
LLVM 系统的优势
  1. LLVM 使用具有严格定义语义的简单低级语言。
  2. 它包括C和 C++的前端。Java、Scheme 和其他语言的前端正在开发中。
  3. 它包括一个积极的优化器,包括标量、过程间、配置文件驱动和一些简单的循环优化。
  4. 它支持终身编译模型,包括链接时、安装时、运行时和离线优化。
  5. LLVM 完全支持准确的垃圾收集。
  6. LLVM 代码生成器相对容易重新定位,并利用强大的目标描述语言。
  7. LLVM 拥有大量文档,并托管了许多不同类型的项目。
  8. 许多第三方用户声称 LLVM 易于使用和开发。例如,(现已删除的)Stacker 前端是由一个对 LLVM 一无所知的人在 4 天内编写的。此外,LLVM 具有使 开发更容易的工具。
  9. LLVM 正在积极开发中,并不断得到扩展、增强和改进。查看左侧栏中的状态更新以查看开发速度。
  10. LLVM 在 OSI 批准的“Apache License Version 2.0”许可下免费提供。
  11. LLVM 目前被许多商业、非营利或学术实体使用,他们贡献了许多扩展和新功能。
LLVM 受众

LLVM 可用于许多不同类型的项目。如果您是以下人员,您可能对 LLVM 感兴趣:

  • 对 C 和 C++ 程序的编译时、链接时(过程间)和运行时转换感兴趣的编译器研究人员。
  • 对可移植、独立于语言的指令集和编译框架感兴趣的虚拟机研究人员/开发人员。
  • 对编译器/硬件技术感兴趣的架构研究员。
  • 对静态分析或仪器感兴趣的安全研究人员。
  • 对编译器转换的快速原型制作系统感兴趣的讲师或开发人员。
  • 希望从您的代码中获得更好性能的最终用户。
想知道更多?

LLVM编译器基础 架构相关推荐

  1. LLVM编译器基础架构与DragonEgg示例

    LLVM编译器基础架构与DragonEgg示例 LLVM 概述 LLVM 项目是模块化和可重用的编译器和工具链技术的集合.LLVM 与传统的虚拟机几乎没有关系."LLVM"这个名字 ...

  2. MLIR: 编译器基础架构重定义

    MLIR: 编译器基础架构重定义 MLIR(多级中间表示)是语言(如 C)或库(如 TensorFlow)与编译器后端(如 LLVM)之间的中间表示 (IR) 系统.允许不同语言的不同编译器堆栈之间的 ...

  3. LLVM 编译器和工具链技术

    LLVM 编译器和工具链技术 LLVM概述 LLVM项目是模块化和可重用的编译器和工具链技术的集合.尽管名称如此,LLVM与传统虚拟机几乎没有关系.LLVM本身不是首字母缩略词,项目的全名. LLVM ...

  4. pass基础架构分析

    pass基础架构分析 Relay 和 TVM IR,包含一系列优化passes,可提高模型的性能指标,如平均推理,内存占用,或特定设备的功耗.有一套标准优化,及特定机器学习的优化,包括常量折叠,死代码 ...

  5. Pass Infrastructure基础架构(上)

    Pass Infrastructure基础架构(上) Operation Pass OperationPass Op-Specific OperationPass Op-Agnostic Depend ...

  6. 【技术分享】几维安全CTO刘柏江:IoT时代LLVM编译器防护的艺术

    「随着物联网时代的开启,需要解决的安全问题会愈来愈多,而代码安全是其他安全方案的底层支撑.面对芯片架构繁多,运行环境复杂的嵌入式物联网设备,传统的代码安全方案都将会失效,LLVM编译器为我们带来了终极 ...

  7. 基于LLVM编译器的IDA自动结构体分析插件

    引用 这篇文章旨在介绍一款对基于LLVM的retdec开源反编译器工具进行二次开发的IDA自动结构体识别插件实现原理分析 文章目录 引用 简介 源码分析 LLVM编译器简介 Retdec源码分析 Kl ...

  8. AI基础架构Pass Infrastructure

    AI基础架构Pass Infrastructure • Operation Pass o OperationPass : Op-Specific o OperationPass : Op-Agnost ...

  9. Pass Infrastructure基础架构(下)

    Pass Infrastructure基础架构(下) pass注册 PassRegistration该类在示例中简要显示了各种pass类型的定义 .该机制允许注册pass类,以便可以在文本pass管道 ...

最新文章

  1. 因子分析数据_Excel数据分析案例:用Excel做因子分析
  2. 库克工资是普通员工201倍,纳德拉年薪三个亿,大公司贫富差距榜出炉
  3. QT的QModbusRequest类的使用
  4. 前端学习(1979)vue之电商管理系统电商系统之让文本框获得焦点
  5. 让运维更高效:关于ECS系统事件
  6. 当使用easyui时,jquery的设置disabled属性方法失效
  7. Web Service/WCF 部署注意事项。
  8. Unreal Engine 4 —— 使用反汇编来确定该进行优化的地方
  9. The command (dfs.browser.action.delete) is undefined 解决Hadoop Eclipse插件报错
  10. request (请求对象)
  11. 中移苏研大规模资源高可用研究及实践
  12. Verilog数字信号处理---基础1
  13. 桌面下雪软件测试工程师,桌面下雪
  14. 《黑客X档案2007配套光盘》2007年上半年合集(6期)
  15. php框架laravel构造者,Laravel框架的体系结构
  16. r语言和python哪个难学_明明R语言比python容易学的多,为什么还有那么多人说R语言学起来陡峭?...
  17. Java实现电子表格的创建
  18. 《虎胆龙威4》观后感
  19. Win10内存占用过高但是实际没有多少进程
  20. Stable Diffusion采样速度翻倍!仅需10到25步的扩散模型采样算法

热门文章

  1. 在Oracle中写出性能优良的SQL语句
  2. php数据库字段设置长度,javascript - 表单字符长度与数据库字段长度
  3. adb avd install 失败_Android 模拟器(emulator-5554...)出现错误解决办法
  4. 美创意 -vue 组件的网站
  5. Spring框架----自动按照类型注入的Autowired注解
  6. JAVA遇见HTML——JSP篇(JavaBeans)
  7. 五初探opengl,变换我们的图形
  8. MyBatis学习总结(六)——调用存储过程
  9. (原创)shell脚本编程之---正则表达式的使用
  10. Tomcat根目录下work文件夹的作用