给定一个 llvm::AllocaInst,我如何获得引用它的 llvm.dbg.declares?

Given an llvm::AllocaInst, how do I get llvm.dbg.declares that refer to it?

我有一个 llvm::AllocaInst,我需要获取引用它的 llvm.dbg.declarellvm.dbg.value 内在函数。 None 出现在 allocauses() 列表中。

AllocaInst *AI = ...;
for (Use const &U : AI->uses()) {
  dbgs() << *(U.getUser()) << "\n";
}

None 的分配调试使用被打印出来。

您可以使用FindAllocaDbgDeclare function。您需要包括 llvm/Transforms/Utils/Local.h.