LLVM Intermediate Representation,链接 LLVM 前端和后端的桥梁,与编程语言和运行架构无关。
previewLLVM IR有两种等价的格式,一种是.bc
(Bitcode)文件,另一种是.ll
文件,.ll
文件是Human-readable的格式。 我们可以使用下面的命令得到这两种格式的IR文件
特征
采用三地址形式(TAC, Three Address Code)
TAC:
-
在每个指令的右端最多有一个运算符
-
每条指令最多保护三个变量地址(变量名、常量值、临时变量)
-
可以使用更少的地址(如跳转指令、函数调用)
采用静态单赋值(SSA,Static Single Assignment)
-
在使用变量之前一定要被定义
-
变量都只能在定义的时候被赋值
(即变量在等号左边只能出现一次)
网友评论