phi

转自:http://www.cnblogs.com/ilocker/p/4892439.html

记录下,方便查阅。

语法:

= phi [ , ], ...

示例:

Loop:      ;Infinite loop that counts from 0 on up...

%indvar = phi i32 [ 0, %LoopHeader ], [ %nextindvar, %Loop ]

%nextindvar = add i32 %indvar, 1

br label %Loop

phi 指令用于实现 PHI 节点。

在运行时,phi 指令根据“在当前 block 之前执行的是哪一个 predecessor(前任) block”来得到相应的值。

以上面示例中的 phi 指令为例,如果当前 block 之前执行的是 LoopHeader,则该 phi 指令的值是 0,而如果是从 Loop label 过来的,则该 phi 指令的值是 %nextindvar。

在 phi 指令的语法中,后面是一个列表,列表中的每个元素是一个 value/label 对,每个 label 表示一个当前 block 的 predecessor block,phi 指令就是根据 label 选相应的 value。

phi 指令必须在 basic block 的最前面,也就是在一个 basic block 中,在 phi 指令之前不允许有非 phi 指令

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,933评论 18 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,771评论 0 33
  • { "Unterminated string literal.": "未终止的字符串文本。", "Identifi...
    一粒沙随风飘摇阅读 10,741评论 0 3
  • 喜欢是放肆,而爱是克制。 真正爱一个人的时候,会不由自主地深深地陷进去,忘记了,自己可能会因此而受伤。 都说恋爱中...
    瑾瑜菇凉阅读 629评论 2 5
  • 那年山上的桃花开的极美。 她被绑着坐在花轿里,由山贼抬去寨里。 他斜倚在树上,风清云淡般的开口道:“轿子里的姑娘,...
    秭颜阅读 372评论 0 2