术语表

基本块

函数内部的指令序列。基本块总是以一个 标签 开头,并以一个 终结指令 结尾。基本块内没有其他指令可以将控制权转移出该块。

函数声明

函数原型的规范,不包含关联的实现。声明包括参数类型、返回类型以及其他信息,例如调用约定。这类似于C语言中的 extern 函数声明。

函数定义

函数的原型,如 函数声明 中所述,加上实现该函数的主体。

getelementptr

一个LLVM 指令,允许你获取聚合数据结构的子元素的地址。

参见 getelementptr 指令 在官方LLVM文档中。

全局值

模块所有成员可访问的命名值。

全局变量

模块所有成员可访问其值的变量。它是指向给定类型模块分配槽的常量指针。

所有全局变量都是全局值。然而,反之则不然——函数声明和函数定义不是全局变量,它们只是 全局值

指令

实现LLVM函数所用的基本元素。LLVM指令定义了一种过程式的、类汇编语言。

中间表示 (IR)

向LLVM描述要编译成原生代码的程序的高级汇编语言代码。

标签

函数内部的分支目标。标签总是表示 基本块 的开始。

元数据

与LLVM指令、函数和其他代码相关的可选信息。元数据提供的信息对于编译LLVM 中间表示 不关键,例如条件分支的可能性或给定指令对应的源代码位置。

模块

LLVM 中间表示 的编译单元。一个模块可以包含任意数量的函数声明和定义、全局变量以及元数据。

终结指令,终结器指令

一种 指令,它在执行后将控制权显式地转移到程序的另一部分,而不是转到下一条指令。示例包括分支和函数返回。