2014-01-30 55 views
7

我最近開始使用Clang/LLVM,想知道是否有關於-Ox優化級別的特定文檔?LLVM優化級別的含義

我在LLVM文檔頁面上找不到太多東西。有人可以分享幾個鏈接?

謝謝。

回答

14

Clang的命令行選項文檔確實非常差,特別是對於優化級別的功能幾乎沒有任何解釋。

FreeBSD的,但是,確實增加了一個man page with a useful summary

-O0 -O1 -O2 -Os -Oz -O3 -O4
指定要使用的優化級別。 -O0的意思是「沒有 優化」:這個級別編譯速度最快,並生成最可調試的代碼。 -O2是一個適度的優化級別 ,它實現了大多數優化。 -Os與-O2一樣,額外的 優化以減少代碼大小。 -Oz就像-Os(因此-O2), ,但進一步縮小了代碼大小。 -O3與-O2相似,只不過 支持需要更長時間才能執行的優化或可能會生成更大的代碼(試圖使程序以更快的速度運行 )。在支持的平臺上,-O4支持鏈接時間 優化;目標文件存儲在LLVM位代碼文件 格式中,整個程序優化在鏈接時完成。 -O1在-O0和-O2之間的某處是 。

如果你正在尋找找到每一步優化執行傳球的準確名單,看到這個問題#1: