LLVM每日谈 | 知乎
llvm是什么?
- llvm是low level virtual machine的简称,其实是一个编译器框架。llvm随着这个项目的不断的发展,已经无法完全的代表这个项目了,只是这种叫法一直延续下来。
- llvm是一个开源的项目。它最早的时候是Illinois的一个研究项目,主要负责人是Chris Lattner,他现在就职于Apple. Apple 目前也是llvm项目的主要赞助者之一。
- llvm的主要作用是它可以作为多种语言的后端,它可以提供可编程语言无关的优化和针对很多种CPU的代码生成功能。此外llvm目前已经不仅仅是个编程框架,它目前还包含了很多的子项目,比如最具盛名的clang.
- llvm的优点是开源,有一个表达形式很好的IR语言,模块化作的特别好。
- llvm这个框架目前已经有基于这个框架的大量的工具可以使用。
- llvm的官方网站地址是:http://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 一个快速内存错误探测器
LLVM每日谈
https://zhuanlan.zhihu.com/llvm-clang
- LLVM每日谈之一 LLVM是什么
- LLVM每日谈之二 LLVM IR
- LLVM每日谈之三 如何创建一个LLVM工程
- LLVM每日谈之四 Pass初探
- LLVM每日谈之五 LLVM文档介绍
- LLVM每日谈之六 LLVM的源码结构
- LLVM每日谈之七 Clang
- LLVM每日谈之八 PASS例子分析
- LLVM每日谈之九 谈LLVM的学习
- LLVM每日谈之十 LLVM Test简介
- LLVM每日谈之十一 编译器相关学习资料推荐
- LLVM每日谈之十二 LLVM的源码分析之Pass相关
- LLVM每日谈之十三 使用LLVM自带的PASS
- LLVM每日谈之十四 如何给Clang添加一个属性
- LLVM每日谈之十五 LLVM自带的examples
- LLVM每日谈之十六 LLVM的学习感悟
- LLVM每日谈之十七 LLVM/Clang的学习的思考
- LLVM每日谈之十八 GEP Instruction的几点总结
- LLVM每日谈之十九 LLVM的第一本系统的书<Getting Started with LLVM Core Libraries>
- LLVM每日谈之二十 Everything && Clang driver
- LLVM每日谈之二十一 一些关于编译器和LLVM/Clang的代码
- LLVM每日谈之二十二 llvm-config工具的使用
- LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料
- LLVM每日谈之二十四 Google的ClangMR
- LLVM每日谈之二十五 Clangd和LSP
- LLVM每日谈之二十六 riscv-llvm
- LLVM每日谈之二十七 几个在线编译器资源
- LLVM每日谈之二十八 I am leaving llvm
- LLVM每日谈之二十九 面向机器学习的编译器——Glow
- LLVM每日谈之三十 在LLVM中定制Alias分析
- LLVM每日谈之三十一 如何读写LLVM的bitcode
- LLVM邮件列表2018年4月内容选辑
- LLVM每日谈之三十二 C++ Insights
- LLVM每日谈之三十三 LLVM的DEBUG宏改名了
- LLVM每日谈之三十四 LLVM IR生成和转换的几条指令
- LLVM每日谈之三十五 LLVM/Clang 6编译的问题
- LLVM每日谈之三十六 LLVM后端的结构
- LLVM每日谈之三十七 LLVM后端简介(杭州分享PPT)
- LLVM每日谈之三十八 那些LLVM的博客和专栏
- LLVM每日谈之三十九 浅谈LLVM的异常处理
- LLVM每日谈之四十 一门介绍LLVM的课程
- LLVM每日谈之四十一 组装一个完整的工具链
- LLVM每日谈之四十二 一个添加Pass的实例
- LLVM每日谈之四十三 LLVM的utility pass
- LLVM每日谈系列中的pass相关内容合集
- LLVM每日谈之四十四 LLVM的别名分析
- LLVM每日谈之四十五 LLVM IR TUTORIAL
- LLVM每日谈之四十六 MLIR
- LLVM每日谈之四十七 LLVM后端文档解析
- LLVM每日谈之四十八 LLVM后端文档解析1
- LLVM每日谈之四十九 LLVM后端文档解析2
- LLVM每日谈之五十 LLVM 后端文档解析3 —目标描述类
- LLVM每日谈之五十一 TargetMachine
- LLVM每日谈之五十二 创建LLVM后端的第一步校正(target machine)
- LLVM每日谈之五十三 Target Registration的更正
- LLVM每日谈之五十四 新建后端的第二步校正(register set)
- LLVM每日谈之五十五 浅谈对Pass的错误认知及其原因
- LLVM每日谈之五十六 从RegionPass看Region
- LLVM每日谈之五十七 TableGen
- LLVM libc++的RISCV支持
LLVM每日谈 | 知乎相关推荐
- LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料
作者:史宁宁(snsn1984) 之前有朋友问到这个问题,是否有使用LLVM/Clang编译Linux内核的,随手找了一些相关资料,在这里贴出来,与大家共享. 网址:http://llvm.linux ...
- LLVM每日谈之十二 LLVM的源码分析之Pass相关
作者:snsn1984 题记:在学习LLVM的过程中,要想学的更加深入,掌握更多的技能,LLVM的源码是必须要读的,但是在这么多的源码中,从哪里下手?很容易让人找不到头脑,本文这里就先拿出几个Pass ...
- LLVM每日谈之三 如何创建一个LLVM工程
作者:snsn1984 阅读了文档<Creating an LLVM Project>(地址:http://llvm.org/docs/Projects.html)之后,自己照着做了一遍, ...
- LLVM每日谈之三十一 如何读写LLVM的bitcode
LLVM的IR在整个LLVM工程中占据着核心地位,它是整个LLVM三个阶段的中间环节,起着承上启下的作用.如何读写LLVM的bitcode在LLVM的前端和后端都会涉及这个问题,在基于LLVM做一些定 ...
- LLVM每日谈之四十一 组装一个完整的工具链
写在前面的话:这是一篇LLVM的官方文档,英文文档地址: Assembling a Complete Toolchain 之前读文档的时候,陆陆续续的翻译过一些,周末花了点时间把这个文章整理了出来.因 ...
- LLVM每日谈之三十七 Brief Intro to LLVM Backend (HelloLLVM杭州站分享PPT)
今天参加了HelloLLVM在杭州的线下聚会,做了一个关于LLVM 后端的分享.旨在给对LLVM感兴趣的同学和刚接触LLVM的同学一点引导,帮助他们快速理清LLVM的后端架构.PPT如下:
- LLVM每日谈之二十九 面向机器学习的编译器——Glow
当地时间五月三日,Glow开发者在LLVM开发者邮件列表中发布了Glow. 邮件地址:[llvm-dev] Thank you from the Glow Developers Glow的开源地址:p ...
- LLVM每日谈之二十八 I am leaving llvm
Rafael 于当地时间五月二日宣称离开LLVM社区,在网络引发了广泛的讨论.Rafael 作为LLVM贡献排名第五的资深贡献者,对LLVM社区贡献极大,他一共提交了4,344个节点,占LLVM提交节 ...
- LLVM每日谈之四十五 LLVM IR TUTORIAL
今年的LLVM欧洲开发者会议上,在Tutorials环节,Vince Bridgers (Intel Corporation), Felipe de Azevedo Piovezan (Intel C ...
最新文章
- pandas批量为列名添加字符并重命名实战
- 在eclipse中开发servlet流程
- 关于l ibrary not found for -lz.1.2.3 编译错误
- 关于双等号判断的深入面试题
- 第一阶段冲刺 第八天
- Python程序员面试必备常用问题答案及解析
- 判断是否是微信浏览器
- python制作adobe photoshop插件_Adobe Ps 2021已上线,新功能秒杀一切插件
- css中大于号是什么意思是,CSS里的大于号是什么意思?
- 驾驶证到期换新证流程
- 团队口号_激励口号_口号大全分享到:
- 罗克韦尔自动化启用位于硅谷的新建电动汽车创新中心
- C# System.Data.Sqlite.dll 的注意事项
- 泡利不相容原理适用的空间范围(系统)是多大?
- 【记录踩坑】配置本地访问远程Linux系统服务器的jupyter notebook
- 第二十三篇:Mock Kafka 消息并发送
- jQueryDom和源生DOM相互的转换、jQuery选择器语法、JQuery层次选择器语法、jQuery属性选择器语法、jQuery伪类选择器语法、
- 互联网日报 | 8月5日 星期四 | 微信推出“先寄后付”服务;闲鱼月活用户突破1亿;深交所创业板上市公司达1000家...
- matlab做干涉,matlab模拟干涉衍射 | 学步园
- 中国航空货运行业投资战略分析与发展动向展望报告2021-2027年