LLVM IR

LLVM Intermediate Representation,链接 LLVM 前端和后端的桥梁,与编程语言和运行架构无关。

preview

LLVM IR有两种等价的格式,一种是.bc(Bitcode)文件,另一种是.ll文件,.ll文件是Human-readable的格式。 我们可以使用下面的命令得到这两种格式的IR文件

image-20210827163956921.png

特征

采用三地址形式(TAC, Three Address Code)

TAC:

  • 在每个指令的右端最多有一个运算符

  • 每条指令最多保护三个变量地址(变量名、常量值、临时变量)

  • 可以使用更少的地址(如跳转指令、函数调用)

采用静态单赋值(SSA,Static Single Assignment)

  • 在使用变量之前一定要被定义

  • 变量都只能在定义的时候被赋值

(即变量在等号左边只能出现一次)

llvm 使用

image-20210827163530604.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容