展开 gcc 编译器优化
Posted
技术标签:
【中文标题】展开 gcc 编译器优化【英文标题】:Unrolling gcc compiler optimization 【发布时间】:2010-10-28 11:05:46 【问题描述】:我有兴趣查看 gcc 实际优化代码的代码。有什么办法吗?
我经历过一些其他类似的问题,我尝试过以下几件事,
-
-Wa,ahl=filename.lst :-这个选项真的很好,可以浏览代码和对应的机器码,但是我开启O3选项就不好了。
转储优化树:- 我确信 gcc 给了我大量的调试信息。但我不知道如何破译它。如果有人能指出任何可用信息,我会很高兴。
还有其他更好的方法,找出gcc优化的代码部分吗?
谢谢, 马杜尔
【问题讨论】:
你试过 gcc -O3 -S myFile1.c 吗?输出文件将是优化的程序集文件 myFile1.s。要查看优化,最好阅读汇编代码。 【参考方案1】:你可以编译代码两次,首先是:
$ 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")'
【讨论】:
+1,这就是我过去在我更好奇的时刻所做的 :-) 您介意将每个命令放在不同的行上吗?我认为它会更好地阅读。 :)【参考方案2】:查看汇编代码或反编译已编译的应用程序。 C 反编译器生成丑陋的 C 代码,但要分析生成了哪些代码,就足够了。
【讨论】:
以上是关于展开 gcc 编译器优化的主要内容,如果未能解决你的问题,请参考以下文章