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. 面试官再问你 HashMap 底层原理,就把这篇文章甩给他看
  2. std::string用法总结
  3. 教学思路SQL之预备课程学习 建库、建表、建约束、关系、部分T-sql语句
  4. 版本管理工具Git(2)git的使用
  5. 浅谈RDMA流控设计
  6. 创建maven项目多模块项目
  7. iosession在linux下拒绝链接,iosession 关闭
  8. win32 汇编实现全盘文件扫描功能(杀毒程序的扫描全盘文件功能)
  9. 安装Oracle 11g RAC R2 之Linux DNS 配置
  10. pdfminer将pdf转为csv
  11. 将 SPSS 分析技术应用于大数据
  12. Ucenter实现多个网站同步登录
  13. 详解 torch.max 函数
  14. c语言中逆序乘积,逆序乘积式(示例代码)
  15. 双节将至,XMind给你最好的礼遇
  16. 苹果系统Fn键怎样使用?
  17. 【LaTeX 问题解决方案】I couldn‘t open file name `.aux‘
  18. 面试官:你连SSO都不懂,就别来面试了
  19. 认清学习的本质 - 读《认知天性》
  20. java什么是类型擦除_Java 泛型,你了解类型擦除吗?

热门文章

  1. 子网划分和子网掩码相关计算
  2. Science:2019年度最佳科学照片
  3. 企业微信API使用基本教程(企业微信的api接口)
  4. 从社会契约论的角度看区块链开发的属性
  5. oracle数据库审计os,审计Oracle数据库的使用
  6. Python(1) 概述与环境安装
  7. 、有以下两组数据: 整型数组:1789,2035,1899,1456,2013,1458,2458,1254,1472,2365 字符串数组:“Java”,”Python”,”PHP”,”CProgr
  8. 白话经典算法之七大排序
  9. win10如何开启管理员用户
  10. SPEED TREE技术分析