📜  编译器设计中的窥孔优化

📅  最后修改于: 2021-09-27 14:39:05             🧑  作者: Mango

窥孔优化是对一小部分代码执行的一种代码优化。它是在一段代码中的非常小的指令集上执行的。

它基本上适用于替换理论,其中一部分代码被更短和更快的代码替换,而不改变输出。

窥视孔是机器相关的优化。

窥孔优化的目标:

窥孔优化的目标是:

  1. 提高性能
  2. 减少内存占用
  3. 减少代码大小

窥孔优化技术:

  1. 冗余加载和存储消除:
    在这种技术中,冗余被消除了。
    Initial code:
    y = x + 5;
    i = y;
    z = i;
    w = z * 3;
    
    Optimized code:
    y = x + 5;
    i = y;
    w = y * 3; 
  2. 恒定折叠:
    可以由用户自己简化的代码,被简化了。
    Initial code:
    x = 2 * 3;
    
    Optimized code:
    x = 6; 
  3. 强度降低:
    消耗较高的执行时间的运算符通过运算符消耗较少的执行时间更换。
    Initial code:
    y = x * 2;
    
    Optimized code:
    y = x + x;    or     y = x << 1;
    
    Initial code:
    y = x / 2;
    
    Optimized code:
    y = x >> 1; 
  4. 空序列:
    无用的操作被删除。
  5. 组合操作:
    多个操作被单个等效操作取代。