图5.37 操作类型变化引起硬件资源需求变化


  表5.9给出了算术操作分配律的2类、4种共8个变换规则。其中同一行的2个表达式恒等,同一列的4个表达式具有相同的数据相关性。这2类表达式对应的数据控制流图示于图5.38,其中从 I 到 II 的变换称为分配律的正向变换(正变换),从 II 到 I 的变换称为分配律的逆向变换(逆变换)。从图中看出,算术操作的分配律改变了控制数据流图中的操作结点数。正变换增加操作结点数,逆变换减少操作结点数。并且调换了两种操作类型(类型A与B)的执行顺序。
  算术操作分配律的逆变换通常用于编译优化中,即编译优化的公因子提取与公用表达式的删除。正变换虽然增加了操作个数,但是调换了操作类型的执行顺序,有可能为结合律变换创造条件。