gpt4 book ai didi

c++ - 如何打印出 LLVM 中的指令?

转载 作者:行者123 更新时间:2023-11-30 05:17:54 33 4
gpt4 key购买 nike

for (BasicBlock::iterator i = bb->begin(), e = bb->end(); i != e; ++i) {
i.print(errs()); ???

我正在编写一个 LLVM PASS 并且我想获取基本 block 中的指令列表,但是如何在控制台上打印它们以便我可以看到它们?上面的代码显示了我尝试过的代码,它遍历了基本 block 中的每条指令,但我得到了以下打印功能的错误。

error: ‘llvm::BasicBlock::iterator’ has no member named ‘print’ i.print(errs());

是否有更好的打印说明的方法?

最佳答案

问题是您正在尝试打印迭代器而不是指令。您可以尝试以下方法之一。您可以通过打印基本 block 或打印每条指令来打印基本 block 中的指令:

BasicBlock* bb = ...; // 
errs() << *bb;
for (BasicBlock::iterator i = bb->begin(), e = bb->end(); i != e; ++i) {
Instruction* ii = &*i;
errs() << *ii << "\n";

两次打印将输出相同的结果。

关于c++ - 如何打印出 LLVM 中的指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41959551/

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