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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/snsn1984/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》

猜你喜欢

转载自blog.csdn.net/snsn1984/article/details/81041932