0

gcc 和 g++ 能够编译具有各种优化的 c++ 代码。gcc / g++ 也可以输出汇编指令。我相信这些优化是在输出 asm 代码之前应用的。

通常 gcc / g++ 代码比我在 asm 中生成的任何代码都快,可能是因为我是汇编程序新手,所以我不知道很多指令。(基本上我有点垃圾。)

了解优化的一个好方法是检查 C++ 编译器的汇编级输出,或者我被告知。

是否可以使用 gcc 或 g++ 编译由 gcc 或 g++ 生成的汇编代码,或者完全像 gas 或 nasm 之类的东西?

我问的原因有两个:

首先,能够生成我自己的 asm 代码,并使用 gcc 优化对其进行编译,看看是否出现任何差异,这将是一件很酷的事情。这实际上更像是一种学习工具。

询问的第二个原因是检查我是否可以加快 gcc 的汇编代码。可能我做不到,我知道 gcc 几乎是优化方面的专家,所以我不希望在这里获得任何东西,但这将是一个有趣的挑战——击败编译器!

所以,是的,这样的事情可能吗?

4

1 回答 1

0

GCC 对源代码的 IR(中间表示)进行优化,因此所有优化都在创建汇编代码之前应用。当然,在他们如何选择为给定的一组操作发出哪些汇编指令时,您可能可以将某些事情视为“优化”——但这又是在 IR 级别决定的。

我想您可能会发现这个答案也很有帮助:在 GCC 进行每次优化后获取汇编代码?

于 2013-07-27T00:37:24.350 回答