LLVM每日谈之三十四 LLVM IR生成和转换的几条指令
本文将罗列几条关于LLVM IR生成和转换的几条指令,并没有技术含量可言,只是让刚接触LLVM IR的同学,有一个检索和参考作用。文中min.c作为输入。
min.c
int min(int a , int b) {if (a <b )return a;return b:
}
1、从源码生成.bc
clang min.c -emit-llvm -c -o min.bc
2、从源码生成.ll
clang min.c -emit-llvm -S -c -o min.ll
3、.ll转换为.bc
llvm-as min.ll -o min.bc
4、.bc转换为.ll
llvm-dis min.bc -o min.ll
5、从.bc中抽取元素构建成新的.bc
llvm-extract -func=min min.bc -o min-fn.bc
llvm-extract可以从.bc中抽取函数、全局变量等,然后构建成为一个新的.bc文件。
此处的例子是从中抽取出函数名为min的函数,由于该文件中只有这一个函数,所以
抽取之后所形成的文件与原文件并无区别。
参考文献:《Getting Started with LLVM Core Libraries》
LLVM每日谈之三十四 LLVM IR生成和转换的几条指令相关推荐
- LLVM每日谈之四十五 LLVM IR TUTORIAL
今年的LLVM欧洲开发者会议上,在Tutorials环节,Vince Bridgers (Intel Corporation), Felipe de Azevedo Piovezan (Intel C ...
- LLVM每日谈之十二 LLVM的源码分析之Pass相关
作者:snsn1984 题记:在学习LLVM的过程中,要想学的更加深入,掌握更多的技能,LLVM的源码是必须要读的,但是在这么多的源码中,从哪里下手?很容易让人找不到头脑,本文这里就先拿出几个Pass ...
- LLVM每日谈之三十一 如何读写LLVM的bitcode
LLVM的IR在整个LLVM工程中占据着核心地位,它是整个LLVM三个阶段的中间环节,起着承上启下的作用.如何读写LLVM的bitcode在LLVM的前端和后端都会涉及这个问题,在基于LLVM做一些定 ...
- LLVM每日谈之三 如何创建一个LLVM工程
作者:snsn1984 阅读了文档<Creating an LLVM Project>(地址:http://llvm.org/docs/Projects.html)之后,自己照着做了一遍, ...
- LLVM每日谈之三十七 Brief Intro to LLVM Backend (HelloLLVM杭州站分享PPT)
今天参加了HelloLLVM在杭州的线下聚会,做了一个关于LLVM 后端的分享.旨在给对LLVM感兴趣的同学和刚接触LLVM的同学一点引导,帮助他们快速理清LLVM的后端架构.PPT如下:
- LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料
作者:史宁宁(snsn1984) 之前有朋友问到这个问题,是否有使用LLVM/Clang编译Linux内核的,随手找了一些相关资料,在这里贴出来,与大家共享. 网址:http://llvm.linux ...
- LLVM每日谈 | 知乎
llvm是什么? llvm是low level virtual machine的简称,其实是一个编译器框架.llvm随着这个项目的不断的发展,已经无法完全的代表这个项目了,只是这种叫法一直延续下来. ...
- SAP UI5 应用开发教程之三十四 - SAP UI5 应用基于设备类型的页面适配功能(Device Adaptation)试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- BetaFlight模块设计之三十四:OSD模块分析
BetaFlight模块设计之三十四:OSD模块分析 1. OSD模块 1.1 osd状态机子模块 1.2 osd_warnings检查子模块 1.3 osd_elements子模块 2. OSD设备 ...
最新文章
- asp.net 2.0中新增的AppendDataBoundItems .dropdownlist 添加第一项
- react 条件渲染
- Message popover
- 栈方法 LIFO - 队方法 FIFO
- Spark修炼之道(进阶篇)——Spark入门到精通:第八节 Spark SQL与DataFrame(一)
- vue v-if判断数组元素的值_我对Vue项目上线做的一些基本优化
- oracle 创建job
- MySQL数据库如何管理与维护_MySQL安全管理、数据库维护及改善性能
- android webview 播放swf 失败彻底解决黑框
- mysql-front 8.0_使用SQL-Front启动MySQL8.0报错
- 学员管理系统(完整版附带源码)
- 《机器学习》课后习题 3.4 选择两个 UCI 数据集,比较 10 折交叉验证法和留 法所估计出的对率回归的错误率.
- 《区块链技术进阶与实践》之积分系统示例讲解
- win11文件资源管理器
- weinre调试环境搭建
- python论文题目大全_论文题目大全
- CNdeepdive 安装报错:deepdive Failed connect to raw.githubusercontent.com:443; Connection refused
- Android设置网络访问权限
- 深度学习基础:SVD奇异值分解及其意义【转】
- python股票数据分析_用Python进行股票数据分析
热门文章
- (转载)LaTex 论文排版(1): Win10 下 LaTex所需软件安装 (Tex live 2018 + Tex studio)
- 特殊符号*上下角标替换
- 基于 Vue.js 2.0 酷炫自适应背景视频登录页面的设计
- 创新先行者Barsetto百胜图咖啡
- git errno 10054
- unity后期特效shader之photoshop混合模式公式的应用
- Win10 14个常用快捷键,便捷日常小生活
- 550分左右的理科大学计算机,550分左右的好大学有哪些?附500分的一本大学名单...
- cvpr eccv iccv icml ijcai tpami ijcv 2017 2018 papers
- 网吧不显示U盘和可移动磁盘方法