原创

LLVM每日谈之三十四 LLVM IR生成和转换的几条指令

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://llvm-cn.blog.csdn.net/article/details/81041932

本文将罗列几条关于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》

文章最后发布于: 2018-07-14 11:27:31
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览