作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设 IR 代码如下所示:
define void @_Z1mbb(i1 zeroext %r, i1 zeroext %y) nounwind {
entry:
%r.addr = alloca i8, align 1
%y.addr = alloca i8, align 1
%l = alloca i8, align 1
%frombool = zext i1 %r to i8
store i8 %frombool, i8* %r.addr, align 1
%frombool1 = zext i1 %y to i8
store i8 %frombool1, i8* %y.addr, align 1
%0 = load i8* %y.addr, align 1
%tobool = trunc i8 %0 to i1
br i1 %tobool, label %lor.end, label %lor.rhs
lor.rhs: ; preds = %entry
%1 = load i8* %r.addr, align 1
%tobool2 = trunc i8 %1 to i1
br label %lor.end
lor.end: ; preds = %lor.rhs, %entry
%2 = phi i1 [ true, %entry ], [ %tobool2, %lor.rhs ]
%frombool3 = zext i1 %2 to i8
store i8 %frombool3, i8* %l, align 1
ret void
}
phinode 有 2 对 [ true, %entry ], [ %tobool2, %lor.rhs ]
。如何提取 %entry
和 %lor.rhs
并找到每对的相应基本 block ?任何帮助将不胜感激。
最佳答案
PHI->getgetNumIncomingValues()
: 返回 PHINode 中传入值的数量
对于您的 phi 节点:
%2 = phi i1 [ true, %entry ], [ %tobool2, %lor.rhs ]
PHI->getIncomingValue(0)
:给出 true
PHI->getIncomingBlock(0)
:给出 %entry
还有 block 和值的迭代器。
http://llvm.org/doxygen/classllvm_1_1PHINode.html
始终引用 doxygen 文档以查看与类相关的所有 API(例如:PHINode)。
关于c++ - 如何从 LLVM 中的 phinode 及其相应的 basicblocks 获取标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55134506/
我在 Java 中遇到异常处理问题,这是我的代码。当我尝试运行此行时出现编译器错误:throw new MojException("Bledne dane");。错误是: exception MojE
我刚刚开始学习asp.net。在你们的支持下,我希望我能从这个论坛学到更多东西。 我的问题是, 我在 asp.net 页面中有一个 TabContainer1,因为每个选项卡面板中有多个类似 (60)
我是一名优秀的程序员,十分优秀!