opt - LLVM 優化器¶
概要¶
opt [選項] [檔案名稱]
描述¶
opt 命令是模組化的 LLVM 優化器和分析器。它接受 LLVM 原始碼檔案作為輸入,對其執行指定的最佳化或分析,然後輸出最佳化後的檔案。透過 opt 可用的最佳化取決於連結到其中的程式庫,以及使用 -load
選項載入的任何額外程式庫。使用 -help
選項來確定您可以使用哪些最佳化。
如果命令列中省略 filename
或為 “-
”,opt 會從標準輸入讀取其輸入。輸入可以是 LLVM 組譯語言格式 (.ll
) 或 LLVM 位元碼格式 (.bc
)。
如果未使用 -o
選項指定輸出檔案名稱,則 opt 會將其輸出寫入標準輸出。
選項¶
- -f¶
在終端機上啟用二進位輸出。通常,如果輸出串流是終端機,opt 將拒絕寫入原始位元碼輸出。使用此選項,無論輸出裝置為何,opt 都會寫入原始位元碼。
- -help¶
列印命令列選項的摘要。
- -o <檔案名稱>¶
指定輸出檔案名稱。
- -S¶
以 LLVM 中繼語言 (而非位元碼) 寫入輸出。
- -{passname}¶
opt 提供了以任何順序執行任何 LLVM 的最佳化或分析 Pass 的能力。
-help
選項列出了所有可用的 Pass。選項在命令列中出現的順序就是它們被執行的順序 (在 Pass 約束內)。
- -strip-debug¶
此選項會使 opt 在應用其他最佳化之前,從模組中去除偵錯資訊。它本質上與 -strip 相同,但它確保首先完成偵錯資訊的去除。
- -verify-each¶
此選項會使 opt 在命令列上指定的每個 Pass (包括 -verify) 之後新增一個驗證 Pass。這對於懷疑某個 Pass 正在建立無效模組,但不清楚是哪個 Pass 正在執行此操作的情況很有用。
- -stats¶
列印統計資訊。
- -time-passes¶
記錄每個 Pass 所需的時間量,並將其列印到標準錯誤。
- -debug¶
如果這是偵錯組建,此選項將啟用來自使用
LLVM_DEBUG()
巨集的 Pass 的偵錯輸出。 有關更多資訊,請參閱 LLVM 程式設計人員手冊,#DEBUG
章節。
- -load=<外掛程式>¶
載入動態物件
plugin
。此物件應註冊新的最佳化或分析 Pass。載入後,該物件將新增新的命令列選項,以啟用各種最佳化或分析。若要查看最佳化的新完整列表,請同時使用-help
和-load
選項。例如opt -load=plugin.so -help
- -print-passes¶
列印所有可用的 Pass 並結束。
結束狀態¶
如果 opt 成功,它將以 0 結束。否則,如果發生錯誤,它將以非零值結束。