【问题标题】:The compilation of the compiler could affect the compiled programs?编译器的编译会影响编译出来的程序吗?
【发布时间】:2011-12-07 20:03:41
【问题描述】:

可能我的问题听起来很奇怪,但我的意思是:我必须使用 GCC 编译程序,如果我从源代码编译 GCC,我会在使用全新 GCC 编译的软件的性能方面获得一点优势?我应该期待什么?

【问题讨论】:

  • 没有。编译是一个确定性的过程。
  • 你没有说你有什么架构,你有什么编译器,或者你打算构建什么编译器。使用完全相同的选项重新构建完全相同的编译器将无济于事,但升级是另一回事。

标签: linux gcc compiler-construction compiler-optimization


【解决方案1】:
  1. 您不会从使用优化标志构建的编译器中获得任何更快的程序。由于程序是编译器的输出,优化不会改变正确程序的输出,因此程序保持不变。
  2. 但是,如果您的分销商提供的编译器不完整,您可能会从新的可用选项中获益。查看 GCC 手册以了解您想要启用的任何选项(例如某些目标架构变体),如果您无法在当前编译器构建中启用它们,则可能在定制编译器中具有潜力。但是,它不太可能值得。

【讨论】:

    【解决方案2】:

    除非您正在构建更新版本的 gcc,或者启用 cloog、graphite 等,否则不会。

    【讨论】:

    • 但这会有所不同,通常很小(百分之几)
    【解决方案3】:

    性能差异通常没有或可以忽略不计。

    在非常罕见、非常罕见的情况下,您可以看到明显的差异,但并不总是能提高性能。退化也是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多