本文将罗列几条关于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生成和转换的几条指令相关推荐

  1. LLVM每日谈之四十五 LLVM IR TUTORIAL

    今年的LLVM欧洲开发者会议上,在Tutorials环节,Vince Bridgers (Intel Corporation), Felipe de Azevedo Piovezan (Intel C ...

  2. LLVM每日谈之十二 LLVM的源码分析之Pass相关

    作者:snsn1984 题记:在学习LLVM的过程中,要想学的更加深入,掌握更多的技能,LLVM的源码是必须要读的,但是在这么多的源码中,从哪里下手?很容易让人找不到头脑,本文这里就先拿出几个Pass ...

  3. LLVM每日谈之三十一 如何读写LLVM的bitcode

    LLVM的IR在整个LLVM工程中占据着核心地位,它是整个LLVM三个阶段的中间环节,起着承上启下的作用.如何读写LLVM的bitcode在LLVM的前端和后端都会涉及这个问题,在基于LLVM做一些定 ...

  4. LLVM每日谈之三 如何创建一个LLVM工程

    作者:snsn1984 阅读了文档<Creating an LLVM Project>(地址:http://llvm.org/docs/Projects.html)之后,自己照着做了一遍, ...

  5. LLVM每日谈之三十七 Brief Intro to LLVM Backend (HelloLLVM杭州站分享PPT)

    今天参加了HelloLLVM在杭州的线下聚会,做了一个关于LLVM 后端的分享.旨在给对LLVM感兴趣的同学和刚接触LLVM的同学一点引导,帮助他们快速理清LLVM的后端架构.PPT如下:

  6. LLVM每日谈之二十三 LLVM/Clang编译Linux内核资料

    作者:史宁宁(snsn1984) 之前有朋友问到这个问题,是否有使用LLVM/Clang编译Linux内核的,随手找了一些相关资料,在这里贴出来,与大家共享. 网址:http://llvm.linux ...

  7. LLVM每日谈 | 知乎

    llvm是什么? llvm是low level virtual machine的简称,其实是一个编译器框架.llvm随着这个项目的不断的发展,已经无法完全的代表这个项目了,只是这种叫法一直延续下来. ...

  8. SAP UI5 应用开发教程之三十四 - SAP UI5 应用基于设备类型的页面适配功能(Device Adaptation)试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  9. BetaFlight模块设计之三十四:OSD模块分析

    BetaFlight模块设计之三十四:OSD模块分析 1. OSD模块 1.1 osd状态机子模块 1.2 osd_warnings检查子模块 1.3 osd_elements子模块 2. OSD设备 ...

最新文章

  1. asp.net 2.0中新增的AppendDataBoundItems .dropdownlist 添加第一项
  2. react 条件渲染
  3. Message popover
  4. 栈方法 LIFO - 队方法 FIFO
  5. Spark修炼之道(进阶篇)——Spark入门到精通:第八节 Spark SQL与DataFrame(一)
  6. vue v-if判断数组元素的值_我对Vue项目上线做的一些基本优化
  7. oracle 创建job
  8. MySQL数据库如何管理与维护_MySQL安全管理、数据库维护及改善性能
  9. android webview 播放swf 失败彻底解决黑框
  10. mysql-front 8.0_使用SQL-Front启动MySQL8.0报错
  11. 学员管理系统(完整版附带源码)
  12. 《机器学习》课后习题 3.4 选择两个 UCI 数据集,比较 10 折交叉验证法和留 法所估计出的对率回归的错误率.
  13. 《区块链技术进阶与实践》之积分系统示例讲解
  14. win11文件资源管理器
  15. weinre调试环境搭建
  16. python论文题目大全_论文题目大全
  17. CNdeepdive 安装报错:deepdive Failed connect to raw.githubusercontent.com:443; Connection refused
  18. Android设置网络访问权限
  19. 深度学习基础:SVD奇异值分解及其意义【转】
  20. python股票数据分析_用Python进行股票数据分析

热门文章

  1. (转载)LaTex 论文排版(1): Win10 下 LaTex所需软件安装 (Tex live 2018 + Tex studio)
  2. 特殊符号*上下角标替换
  3. 基于 Vue.js 2.0 酷炫自适应背景视频登录页面的设计
  4. 创新先行者Barsetto百胜图咖啡
  5. git errno 10054
  6. unity后期特效shader之photoshop混合模式公式的应用
  7. Win10 14个常用快捷键,便捷日常小生活
  8. 550分左右的理科大学计算机,550分左右的好大学有哪些?附500分的一本大学名单...
  9. cvpr eccv iccv icml ijcai tpami ijcv 2017 2018 papers
  10. 网吧不显示U盘和可移动磁盘方法