展开gcc编译器优化

时间:2010-10-28 11:05:46

标签: gcc compiler-optimization

我有兴趣看到gcc实际优化代码的代码。我有办法吗?

我已经完成了其他几个类似的任务,我尝试过几件事,

  1. -Wa,ahl = filename.lst: - 这个选项非常好,你可以浏览代码和相应的机器代码,但是当我启用O3选项时效果不佳。
  2. 转储优化树: - 我相信gcc正在给我很多调试信息。但我不知道如何破译它。如果有人能指出任何可用的信息,我将很高兴。
  3. 还有其他更好的方法,找出gcc优化代码的哪一部分?

    谢谢, Madhur

2 个答案:

答案 0 :(得分:8)

您可以编译代码两次,首先使用:

$ 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 :(得分:0)

查看assember代码或反编译已编译的应用程序。 C反编译器生成丑陋的C代码,但是为了分析生成的代码,它必须足够。