gpt4 book ai didi

llvm - 在 LLVM 中查找特定变量的所有用途

转载 作者:行者123 更新时间:2023-12-04 14:47:42 25 4
gpt4 key购买 nike

我对 LLVM 很陌生。

我正在尝试编写一个 llvm Pass 来执行类似于污点分析的操作。在我的努力中,我需要遍历特定预定义变量的 Def-use 链。例如一个 C 程序的反汇编如下代码

  @someVar = external global %struct.something 

这是在函数上方找到的,我想在我的函数中找到这个 @someVar 的所有用法。我该怎么做?我开始写一个函数pass。但是我如何获得这个特定标识符的 Def Use 链呢?

我在 LLVM 手册 http://llvm.org/docs/ProgrammersManual.html#iterate_chains 中找到了这个.

但我不确定如何在这种情况下使用它。

P.S 对不起,如果我的问题含糊不清或幼稚。我是新手,我不知道哪些信息是相关的。

最佳答案

我正在粘贴链接中的代码

Function *F = ...;

for (Value::use_iterator i = F->use_begin(), e = F->use_end(); i != e; ++i)
if (Instruction *Inst = dyn_cast<Instruction>(*i)) {
errs() << "F is used in instruction:\n";
errs() << *Inst << "\n";
}

基本上 F 是您要为其找到链的值

关于llvm - 在 LLVM 中查找特定变量的所有用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12289994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com