我正在扩展LLVM用于实验。因此,我想跟踪变量用法及其依赖项。
例如,在找到由两个操作数的比较引起的条件分支之后,我想回溯该变量的所有用法并确定其所有依赖性(哪些变量用于计算条件的操作数)。对我来说,这似乎是某种递归回溯操作。
是否有专门针对该问题的特殊算法?
你想要什么被称为“达到定义”。这些是对值“到达”感兴趣的语句或表达式的变量的赋值(或副作用)。
有关如何计算它们的更多讨论和算法(以及任何经典编译器教科书),请参阅https://en.wikipedia.org/wiki/Reaching_definition。
我希望LLVM有一些内置的机器来帮助计算它。我不是LLVM专家,所以我错了。