我有興趣看到gcc實際優化代碼的代碼。我有辦法做到嗎?展開gcc編譯器優化
我已經通過其他一些類似的questoins走了,我已經嘗試了以下幾件事情,
- -Wa,AHL = filename.lst: - 這個選項是非常好的,你可以瀏覽代碼和相應的機器代碼,但啓用O3選項時效果不佳。
- 轉儲優化樹: - 我相信gcc給了我很多調試信息。但我不知道如何解讀它。如果有人能指出任何可用的信息,我會很高興。
有沒有其他更好的辦法,找出gcc優化的代碼部分?
感謝, Madhur
我有興趣看到gcc實際優化代碼的代碼。我有辦法做到嗎?展開gcc編譯器優化
我已經通過其他一些類似的questoins走了,我已經嘗試了以下幾件事情,
有沒有其他更好的辦法,找出gcc優化的代碼部分?
感謝, Madhur
看那裝配臺代碼或反編譯你的編譯的應用程序。 C反編譯器生成醜陋的C代碼,但爲了分析生成哪些代碼,它已足夠。
您可以編譯代碼兩次,第一次有:
$ 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,這是最容易和最準確的方式。 – DarkDust 2010-10-28 11:13:30
+1,這是我在我更多好奇的時刻做過的事情:-) – 2010-10-28 11:17:36
你會介意把每個命令放在不同的路線上嗎?我認爲閱讀會更好。 :) – 2010-10-28 11:37:34
你試過gcc -O3 -S myFile1.c?輸出文件將是優化的彙編文件myFile1.s。要查看優化,最好閱讀彙編代碼。 – Kizaru 2010-10-28 11:10:02