gpt4 book ai didi

llvm - 如何从 LLVM IR 的指令元数据中提取操作数?

转载 作者:行者123 更新时间:2023-12-02 04:41:17 26 4
gpt4 key购买 nike

我正在尝试提取在 LLVM IR 中的 if 指令中使用的操作数。例如:对于像 if(x==10) 这样的指令,我希望将 x10 作为输出。

这不应该是这样吗:

if (ICmpInst* iCmpInst = dyn_cast<ICmpInst>(&*i))
{
errs() << "Conditional Instruction found: ";
errs() << iCmpInst->getOpcodeName() << '\t';
errs() << iCmpInst->getPredicate() << '\t';

MDNode* metadata = iCmpInst->getMetadata("dbg");
llvm::MDNode::op_iterator o_begin = metadata->op_begin();
llvm::MDNode::op_iterator o_end = metadata->op_end();

for(; o_begin != o_end; ++o_begin)
{
errs() << o_begin << "\n";
}
}

对于像x这样的文字,我必须扫描`我认为的存储指令......

最佳答案

如果你只想得到操作数,也许你可以试试,

Value* opl = iCmpInst -> getOperand(0);
Value* opr = iCmpInst -> getOperand(1);

关于llvm - 如何从 LLVM IR 的指令元数据中提取操作数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37274107/

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