如何在LLVM中回补基本块

时间:2019-08-05 01:55:20

标签: llvm llvm-ir

我正在编写c编译器,并且不知道如何在我的使用llvm的单程编译器中实现pages/dashboard/dashboard.php. 语句,例如:

goto

由于解析器是一次通过,因此当我分析int main() { goto label; label: return 0 } 时,由于它尚不存在,所以我无法获得代表goto label;的llvm :: BasicBlock,因此如果我创建了{{1 }}要实现此goto语句,BasicBlock的参数是未知的。

那么我该如何使用llvm对一个基本块进行回补丁?

1 个答案:

答案 0 :(得分:1)

您需要做的是保持一个从标签名称到基本块的映射,并在您看到标签时创建条目,而第一个提及是使用还是定义都没有关系。