公共子表达式消除

公共子表达式消除是一项非常经典的、普遍应用于各种编译器的技术,

如果一个表达式之前已经被计算过了,并且从之前的计算到现在表达式

中所有变量的值都没有发生变化,那么此表达式的的此次出现就称为

公共子表达式。对于这种表达式,没有必要再重新计算,之前用之前的

计算结果即可。

如果这种优化仅限于程序基本块内,则称为局部公共子表达式消除

Local Common Subexpression Elimination),如果涵盖多个基本块,

就称全局公共子表达式消除(Global Common Subexpression Elimination