LLVM IR 语法
2018.12.24
注:去年写的,原来是有图的,不知道何时竟然图都没了,翻了好久才找到这些图。
以下图程序为例:

在klee运行之后,每个文件夹中都会有一个assembly.ll这是llvm IR的中间语言代码。Klee中的指令执行,都是根据这个来实现的。下图为IR代码:

首先对于e这个函数:
i32 表示该类型所占位数。(bit),align对齐。

这里面创建了两个局部变量%2,%3(@全局变量),具体干什么的下面分析。
![]()
Store 写入,把函数定义中#0中的值(就是int x),写入%3中。利用load将%3的值读出到%4中。所以上面的%3是为了int x创建的内存。

这篇博客介绍了LLVM IR的语法,以一个示例程序为切入点,详细解释了IR代码中的存储、比较、分支等操作。通过分析函数e和主函数的IR代码,展示了如何在LLVM IR中处理变量、条件判断和函数调用,帮助读者理解LLVM IR的中间语言特性。
最低0.47元/天 解锁文章
1万+





