title: Phinode是如何实现它的功能的？
desc: 看编译原理只明白它的起作用的机理是怎么样的，但是（到了汇编机器码的阶段）它是如何实现的呢？<br><br>是会生成一段汇编代码，在运行时进行判断传入的变量值，然后再输出新的变量的值？
topic: 编译原理
content: 由于目标指令集多半不支持“Phi”的概念，编译器里通常会有一个pass是“resolution”，把Phi node给resolve为move（也叫copy insertion），经过了resolution之后再生成具体的目标代码。经过Phi resolution的IR就退出了SSA形式，所以这个动作也叫做SSA destruction，缩写de-SSA。在编译器的源码里看到名如“PhiResolver”之类的东西那就是这玩儿了。举例来说，如果在一个基本块B2的开头有： x2 phix0， x1那么最简单的resolut
answerer_tags: 软件工程师、主攻高级编程语言虚拟机的设计与实现