• 编译器消除重复的子表达式重新计算的某些方式是什么?您如何跟踪子表达式?以及如何识别重复的?
  • 除了使用按位运算符外,普通编译器还使用哪些强度降低技术?
  • 最佳答案

  • 我相信许多编译器都使用SSAPRE(静态单分配部分冗余消除)来消除重复的表达式。这要求代码在SSA form中,从而可以进行更多优化。
  • 我不太确定这一点,但请看this list of LLVM passesLLVM是针对编译器的优化IR,通常比GCC还要快。每个通行证都有一个简短的解释。如果您需要更多信息,请查看这些通行证的LLVM源。它是用C++编写的,但是非常干净易懂。

  • 编辑:顺便说一句,如果您正在开发编译器,我强烈推荐LLVM,它非常易于使用并生成高度优化的代码。

    关于optimization - 编译器优化问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/827489/

    10-11 22:37
    查看更多