LLVM实战之执行LLVM bitcode

本文详细介绍了如何使用lli工具执行之前链接得到的LLVM位码文件(output.bc),涉及步骤包括使用$llioutput.bc命令执行,以及LLVMbitcode与JIT编译器的工作原理。示例展示了test1.c和test2.c函数间的调用过程。
摘要由CSDN通过智能技术生成

本文介绍如何执行之前得到的LLVM bitcode文件。

前提是安装lli工具,用它来执行LLVM bitcode。

1. 详细步骤

在前一个文章中,我们看到在链接两个.bc文件之后会得到单个的位流文件,其中一个文件引用了另一个文件定义的func函数。而调用lli命令可以执行之前得到的output.bc文件,直接在标准输出里给出结果:

$ lli output.bc
number is 10

lli的输入是output.bc文件,它会执行bitcode文件,如果有输出会在标准输出显示结果。在这个例子中输出结果是“number is 10”,这就是由之前文章中的test1.c和test.c链接得到的output.bc文件的执行结果。test2.c文件的主函数调用了test1.c文件的func函数,并用整数5作为参数;而func函数把输入参数乘以2之后返回给主函数,主函数则向标准输出打印结果。

2. 原理

lli工具命令执行LLVM bitcode格式程序,它使用LLVM bitcod格式作为输入并且使用即时编译器(JIT)执行。当然,如果当前的架构不存在JIT编译器,会用解释器执行。

如果lli能够采用JIT编译器,那么它能高效地使用所有代码生成器参数,如llc。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值