当前位置:网站首页>LLVM中的PHI节点
LLVM中的PHI节点
2022-04-22 05:45:00 【What’smean】
PHI 节点,它会选择来自不同分支的 i,因为我们的 IR 是 SSA(single static assignment,静态单赋值)形式的。在控制流图中,一个给定的变量可以来自两个不同的基本块(两条不同的路径),为了在 SSA 形式的 LLVM IR 中表达这种分支情况,需要用到phi 指令。(PHI指令用于实现 PHI 节点。在运行时,PHI指令根据“在当前 block 之前执行的是哪一个 predecessor(前任) block”来得到相应的值。)
举个例子:
%i = phi i32 [ 1, %entry ], [ %nextvar, %loop ]
phi 指令必须在 basic block 的最前面,也就是在一个 basic block 中,在 phi 指令之前不允许有非 phi 指令。
这里的 IR 表明变量 i 的值可能会来自两个基本块:%entry 或者%loop。来自%entry
块的变量值是 1,而%nextvar 变量将来自%loop。
版权声明
本文为[What’smean]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42492218/article/details/121773826
边栏推荐
猜你喜欢

QWbEngneView和QWebChanel的使用。

Chorme debugging tool

deep learning object detection 精选

Part 84 leetcode sword refers to offer dynamic programming (I) Fibonacci sequence

IWDG

Access problems after setting up the local server

jeecgboot-online在线开发3

Daily learning records - reading custom data sets

Blue Bridge Cup embedded expansion board learning nixie tube

LeetCode: 322. Change exchange (dynamic programming, recursion, memo recursion and backtracking)
随机推荐
膨胀腐蚀以及其它形态学处理
蓝桥杯嵌入式扩展板学习之ADC按键
汇编 dos中断功能
IFIX question summary Q & A (personal record)
Rtl8367 learning note 2 - network configuration operation literacy
2020-10-28
Clock
halcon与opencv或者halcon配置修改包含目录、库目录继承值的问题
Installation of QT learning
WGS84 coordinate conversion, map picking, WGS84 coordinate tool recommended
Dlopen calls dynamic library
Opencv code
opencv图像增强
jeecgboot开发经验过程
STL函数库
opencv代码
《C语言程序设计现代方法》阅读笔记
cmd
LeetCode: 322. 零钱兑换(动态规划,递归,备忘录递归以及回溯)
常见面试问题 - 1(非技术)