我有兴趣查看 gcc 实际优化代码的代码。我有办法吗?
我经历过其他一些类似的问题,我尝试过以下几件事,
- -Wa,ahl=filename.lst :- 这个选项真的很好,可以浏览代码和对应的机器码,但是我开启O3选项就不行了。
- 转储优化树:- 我确信 gcc 给了我大量的调试信息。但我不知道如何破译它。如果有人能指出任何可用的信息,我会很高兴。
还有其他更好的方法来找出 gcc 优化的代码部分吗?
谢谢,马杜尔
我有兴趣查看 gcc 实际优化代码的代码。我有办法吗?
我经历过其他一些类似的问题,我尝试过以下几件事,
还有其他更好的方法来找出 gcc 优化的代码部分吗?
谢谢,马杜尔
您可以编译代码两次,首先是:
$ gcc -O0 -S -o yourfile_o0.s
然后:
$ gcc -O3 -S -o yourfile_o3.s
然后你可以diff
得到两个汇编文件:
$ diff -u yourfile_o0.s yourfile_o3.s
$ vim -d yourfile_o0.s yourfile_o3.s
$ emacs --eval '(ediff "yourfile_o0.s" "yourfile_o3.s")'
查看汇编代码或反编译已编译的应用程序。C 反编译器生成丑陋的 C 代码,但要分析生成了哪些代码,它就足够了。