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。

LLVM中的PHI节点相关推荐

  1. LLVM中指令的一生

    原作:http://eli.thegreenplace.net/2012/11/24/life-of-an-instruction-in-llvm/ 作者:Eli Bendersky LLVM是一个复 ...

  2. llvm中的XXXInstrInfo.td

    全文基于作者主观理解,仅供参考: XXXInstrInfo.td文件中定义的是目标机的指令格式.这种td文件会被TableGen自动生成c++类型文件.下面主要是要讨论该文件中的代码含义. 1.def ...

  3. 删除单链表中的重复节点(c语言版本)

    这是一道经典的面试题,下面是我的研究和举一反三,特整理如下: 分为三种情形: (1)删除有序链表的重复节点,重复节点一个都不留 (2)删除有序链表的重复节点,重复节点只留一个 (3)删除无序链表的重复 ...

  4. 使用Blender中的几何节点创建程序对象

    大小解压后:2.4G 持续时间3h 30m 1280X720 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 使用Blender中的几何节点按程序创建对象 信息: 使用Blender中的几 ...

  5. Nat. Mach. Intell. | 基于深度强化学习寻找网络中的关键节点

    今天给大家介绍哈佛大学Yang-Yu Liu课题组和加利福尼亚大学洛杉矶分校Yizhou Sun课题组发表在nature machine intelligence上的一篇文章"Finding ...

  6. 编写代码,移除未排序的链表中的重复节点

    2019独角兽企业重金招聘Python工程师标准>>> 解法一:如果不得使用临时缓冲区,该怎么解决? 要想移除链表中的重复节点,我们需要设法记录有哪些是重复的.这里只需要使用到一个简 ...

  7. Linux文件系统中的inode节点详细介绍

    一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统 ...

  8. 求一颗二叉树中两个节点的最低公共父节点

    题目:求一棵二叉树中两个节点的最低公共父节点 思路:递归 和 非递归 public static TreeNode getLastCommonParentRec(TreeNode root, Tree ...

  9. zTree实现单独选中根节点中第一个节点

    zTree实现单独选中根节点中第一个节点 1.实现源代码 <!DOCTYPE html> <html> <head><title>zTree实现基本树& ...

最新文章

  1. 算法岗面试复盘 | 阿里、百度、作业帮、华为
  2. iOS 排序算法总结、二分法查找
  3. Linux 操作系统原理 — 文件系统 — 管理与优化
  4. auto_ptr动态分配对象
  5. Java 技术篇-借助自定义对象实现函数返回多个不同类型的值实例演示
  6. break和continue理解
  7. 2010.8.12 CString最大可以多大?
  8. 线性回归csv数据集_用mxnet的gluon线性回归训练只有两个特征的数据集
  9. 自动化测试框架 2019_2019年用于自动化的5个最佳Java测试框架
  10. python中函数的参数传递(传值还是传引用)
  11. 面试官:面对业务量增长10倍、100倍怎么处理? 当场哭出声。。
  12. 葡萄城 SpreadJS 表格控件 V11 产品白皮书
  13. 设计潮流趋势|背景图案素材,增加设计对比和补充前景元素
  14. FusionCharts 分类以及各个属性参数列表
  15. Linux系统性能监控工具nmon
  16. CS231n第一次作业_问题1
  17. bios调整服务器性能模式吗,怎样更改BIOS设置提高显卡性能
  18. 宿舍计算机管理制度,【宿舍门禁系统能统计夜不归宿吗】_学生宿舍门禁系统使用管理规定(试行)...
  19. 2030年中国GDP将超越美国成为世界第一?
  20. 简单几招破解Windows管理员密码

热门文章

  1. Internet Information Services
  2. 会p图的程序猿---ps基础(人像修图)
  3. 罗兰贝格第十期《汽车行业颠覆性数据探测》重磅发布:虽近犹远——通往自动驾驶的曲折之路...
  4. ubuntu 20.04
  5. echatrs爱心水滴图
  6. Ubuntu Netplan修改网卡配置
  7. 微商管理系统下单平台软件开发
  8. Java和Android应用points-to analysis工具Doop的基本使用方法
  9. matlab lyapunov指数,lyapunov指数matlab
  10. Java双亲委派模型:为什么要双亲委派?如何打破它?破在哪里?