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 結束。否則,如果發生錯誤,它將以非零值結束。