【发布时间】: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