我使用C语言编写了一个简单的快速排序算法,名为test.c 我试图最大化优化,所以我使用像下面这样的-O3选项。
gcc -S -O3 -o test.s test.c
gcc -S -O3 -o test1.s test.s
gcc -S -O3 -o test2.s test1.s
gcc -S -O3 -o test3.s test2.s
.
.
.
但奇怪的事情发生了。我执行上述程序的次数越多,行程序集的数量就越多。
我不知道为什么会发生这种情况,因为我认为我必须得到更多优化的程序集文件,其行数较少,就像我上面的程序一样。
如果这不是正确的方法,使用-O3只有一次才是最佳优化方式?
由于
答案 0 :(得分:1)
大多数gcc优化都以中间语言表示C源代码。除了 peephole 之外,我不知道在汇编程序指令级别专门运行的任何优化。但这也包含在-O3
。
所以是的,当将C源变为目标文件时,-O3
应该只使用一次。