每日一博 | 什么是编译器中的常量传播?
摘要:常量传播,顾名思义,就是把常量传播到使用了这个常量的地方去,用常量替换原来的变量。 本文分享自华为云社区《编译器优化那些事儿(2):常量传播》,作者:毕昇小助手。 基础知识盘点 基本块 (Basic Block):一个基本块内的指令,处理器会从基本块的第一条指令顺序执行到基本块的最后一条指令,中间不会跳转到其它地方去,也不会有其它地方跳转到基本块的非首条指令上来。 控制流图 (Control Flow Graph):控制流图的节点是基本块,边代表基本块之间的跳转。基本块A到基本块B有一条边,表示基本块A的最后一条指令是一个跳转指令,跳转到了基本块B的第一条指令;或者基本块A的最后一条指令执行完可以顺序的走向基本块B的第一条指令。 SSA (Static Single Assignment):静态单赋值,指程序的一种表示形式,在该形式中变量只被赋值一次,如果变量需要更新,会使用一个新的变量。决定使用哪个分支处的变量,会使用Φ函数。 例如 min = a; if(min > b) min = b; return min; 转换为SSA形式为: min = a; if(m...

