optimization - 编译器优化问题

标签 optimization compiler-construction compiler-development

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

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

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

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

    相关文章:

    regex - 莱克斯/雅克 : using global variables and finding the longest occurance

    language-agnostic - 识别不同语言并将它们发送到相应编译器的编译器。可能的?

    parsing - 如何在编译器中实现前向引用?

    php - PHP 中的 Objective-C/Cocoa 桥?

    compiler-construction - 什么是 A 范式?

    java - 保存hashmap结构java

    javascript - 最好使用包含大量对象或大量文档的文档?

    c - C 编译器如何始终如一地优化无法访问的代码?

    haskell - 为什么我的实现这么慢? (99 个 haskell 问题中的第 26 个)

    c++ - Boost spirit 计算器示例运行