LLVM简介

llvm是什么?
llvm是low level virtual machine的简称,其实是一个编译器框架。llvm随着这个项目的不断的发展,已经无法完全的代表这个项目了,只是这种叫法一直延续下来。
llvm是一个开源的项目。它最早的时候是Illinois的一个研究项目,主要负责人是Chris Lattner,他现在就职于Apple. Apple 目前也是llvm项目的主要赞助者之一。
llvm的主要作用是它可以作为多种语言的后端,它可以提供可编程语言无关的优化和针对很多种CPU的代码生成功能。此外llvm目前已经不仅仅是个编程框架,它目前还包含了很多的子项目,比如最具盛名的clang.
llvm的优点是开源,有一个表达形式很好的IR语言,模块化作的特别好。
llvm这个框架目前已经有基于这个框架的大量的工具可以使用。
llvm的官方网站地址是:llvm.org。在这里可以下载最新的发布代码,也可以找到介绍llvm的相关文档。

附录:llvm目前支持的工具(部分描述来自网络)
llvm-as: 将人类可读的 .ll 文件汇编成字节代码
llvm-dis: 将字节代码文件反编成人类可读的 .ll 文件
opt: 在一个字节代码文件上运行一系列的 LLVM 到 LLVM 的优化
llc: 为一个字节代码文件生成本机器代码
lli: 直接运行使用 JIT 编译器或者解释器编译成字节代码的程序
llvm-link: 将几个字节代码文件连接成一个
llvm-ar: 打包字节代码文件
llvm-ranlib: 为 llvm-ar 打包的文件创建索引
llvm-nm: 在 打印出LLVM中间格式或者object文件的符号表(2014年5月14日更新)
llvm-prof: 将 'llvmprof.out' raw 数据格式化成人类可读的报告
llvm-ld: 带有可装载的运行时优化支持的通用目标连接器
llvm-config: 打印出配置时 LLVM 编译选项、库、等等
llvmc: 一个通用的可定制的编译器驱动
llvm-diff: 比较两个模块的结构
bugpoint: 自动案例测试减速器
llvm-extract: 从 LLVM 字节代码文件中解压出一个函数
llvm-bcanalyzer: 字节代码分析器 (分析二进制编码本身,而不是它代表的程序)
FileCheck: 灵活的文件验证器,广泛的被测试工具利用
tblgen: 目标描述阅读器和生成器
lit: LLVM 集成测试器,用于运行测试
AddressSanitizer:  一个快速内存错误探测器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值