llvm基本命令

1.将C语言代码转换成llvm ir:

clang -emit-llvm -S multiply.c -o multiply.ll或 clang -cc1 -emit-llvm testfile.c -o testfile.ll

2.把ll文件的LLVM IR转为bitcode格式

llvm-as test.ll –o test.bc

3.通过以下命令可把bc文件中LLVM bitcode转换为汇编码:

llc test.bc –o test.s或clang -S test.bc -o test.s –fomit-frame-pointer

4.执行以下命令把bitcode文件转换为我们之前创建过的ll文件:
 

llvm-dis test.bc –o test.ll

5.使用以下命令用opt执行转换Pass

opt –passname input.ll –o output.ll
adce:入侵式无用代码消除。 
bb-vectorize:基本块向量化。 
constprop:简单常量传播。 
dce:无用代码消除。 
deadargelim:无用参数消除。 
globaldce:无用全局变量消除。 
globalopt:全局变量优化。 
gvn:全局变量编号。 
inline:函数内联。 
instcombine:冗余指令合并。 
licm:循环常量代码外提。 
loop-unswitch:循环外提。 
loweratomic:原子内建函数lowering。 
lowerinvoke:invode指令lowering,以支持不稳定的代码生成器。 
lowerswitch:switch指令lowering。 
mem2reg:内存访问优化。
memcpyopt:MemCpy优化。 
simplifycfg:简化CFG。 
sink:代码提升。 
tailcallelim:尾调用消除。

6.使用llvm-link命令链接两个LLVM bitcode文件:

 llvm-link test1.bc test2.bc –o output.bc

7.lli工具命令执行LLVM bitcode格式程序

lli output.bc

8.把C语言代码转为bitcode格式

% clang -O3 -emit-llvm hello.c -c -o hello.bc

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值