【发布时间】:2018-04-22 16:06:28
【问题描述】:
我正在尝试获取 alloca 指令的用户(基本上是获取变量的用户)。我正在使用以下代码:
virtual bool runOnModule(Module &M)
{
for(Module::iterator F= M.begin(), E = M.end(); F != E; ++F) // iterating over functions in a module
{
for (Function::iterator FI = F->begin(), E = F->end(); FI != E; ++FI) // iterating over BB in a function
{
for (BasicBlock::iterator I = FI->begin(), E = FI->end(); I != E; ++I) // iterating over instructions in the BB
{
Value* v = cast<Value>(I);
v->user_begin ();
}
}
}
return false;
}
但是,它给了我错误:
error: ‘class llvm::Value’ has no member named ‘user_begin’
谁能告诉我为什么会发生这种情况,并为我在这里尝试做的事情提出一个可能的解决方案(获取变量的用户)?
【问题讨论】:
-
会不会是您使用了没有此 API 的旧版 LLVM?
-
正如@AlexDenisov 所写。你使用什么版本的 LLVM?
-
据我所知,LLVM 3.4
-
那真是过时的版本。最新的是 7.0
标签: llvm llvm-clang llvm-ir llvm-gcc llvm-c++-api