公共子表达式消除
公共子表达式消除是一项非常经典的、普遍应用于各种编译器的技术,
如果一个表达式之前已经被计算过了,并且从之前的计算到现在表达式
中所有变量的值都没有发生变化,那么此表达式的的此次出现就称为
公共子表达式。对于这种表达式,没有必要再重新计算,之前用之前的
计算结果即可。
如果这种优化仅限于程序基本块内,则称为局部公共子表达式消除
(Local Common Subexpression Elimination
),如果涵盖多个基本块,
就称全局公共子表达式消除(Global Common Subexpression Elimination
)