【问题标题】:How can I optimize LLVM assembly cross-compiled with gcc?如何优化与 gcc 交叉编译的 LLVM 程序集?
【发布时间】:2011-09-27 11:05:45
【问题描述】:

我正在使用 LLVM 来生成 Alpha 程序集。他们的 Alpha ISA 支持是实验性的,我找不到解决错误的方法。如果我在 LLVM 字节码到 Alpha 程序集创建期间使用 -O0,则生成的程序集很好。

不过,我想要优化组装。 gcc(这是我的最终交叉编译器)中是否有一些可以优化程序集的选项?我在将 Alpha 程序集转换为目标文件时尝试了 -O3,但我没有看到任何优化发生。是否甚至可以在创建程序集后进行后端优化?

【问题讨论】:

  • 当然可以优化汇编语言。毕竟它只是另一种语言,所以所有标准优化技术都适用。谷歌“优化汇编程序”以获得一些现实生活中的例子。但是 gcc 不这样做。
  • 是的,虽然理论上这是可能的,但我怀疑许多编译器编写者会发现花很多时间尝试这样做是值得的。 Gcc 在这方面甚至比大多数其他人更好,因为它们至少优化了包含内联汇编的函数 - 但是每个人看过 GCC 内联汇编代码都知道这在复杂性上付出了相当多的代价..
  • 那么不要解决这个错误。修复错误。

标签: gcc assembly optimization llvm alpha-cpu-architecture


【解决方案1】:

如果你想要优化的程序集,你显然应该向 LLVM 索取。所以将 -O3 传递给 llc,而不是 gcc。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多