用于回溯变量的使用和依赖性的算法

时间:2016-12-06 09:05:53

标签: algorithm compiler-construction llvm

我正在扩展LLVM以进行实验。因此,我想跟踪变量用法及其依赖项。

例如,在找到由两个操作数的比较引起的条件分支之后,我想回溯该变量的所有用法并确定其所有依赖关系(哪些变量用于计算条件的操作数)。对我来说,这似乎是一种递归的回溯操作。

是否有专门针对该问题的特殊算法?

1 个答案:

答案 0 :(得分:2)

您想要的是什么?"达到定义"。这些是对值"达到"的变量的赋值(或副作用)。感兴趣的陈述或表达。

有关如何计算它们的更多讨论和算法(以及任何经典编译器教科书),请参阅https://en.wikipedia.org/wiki/Reaching_definition

我希望LLVM有一些内置的机器来帮助计算这个。我不是LLVM专家,所以我错了。