opt - LLVM 優化器

概要

opt [選項] [檔案名稱]

描述

opt 命令是模組化的 LLVM 優化器和分析器。它將 LLVM 原始碼檔案作為輸入,在其上執行指定的優化或分析,然後輸出優化後的檔案。可通過 opt 使用的優化取決於連結到其中的程式庫,以及使用 -load 選項載入的任何其他程式庫。使用 -help 選項可確定您可以使用的優化。

如果命令列中省略了 檔案名稱 或為 “-”,則 opt 會從標準輸入讀取其輸入。輸入可以是 LLVM 組合語言格式 (.ll) 或 LLVM 位元碼格式 (.bc)。

如果未通過 -o 選項指定輸出檔案名稱,則 opt 會將其輸出寫入標準輸出。

選項

-f

在終端機上啟用二進制輸出。通常,如果輸出串流是終端機,opt 將拒絕寫入原始位元碼輸出。使用此選項,opt 將寫入原始位元碼,而不管輸出裝置為何。

-help

列印命令列選項的摘要。

-o <檔案名稱>

指定輸出檔案名稱。

-S

以 LLVM 中間語言(而不是位元碼)寫入輸出。

-{passname}

opt 提供了以任何順序執行任何 LLVM 優化或分析遍歷的功能。-help 選項會列出所有可用的遍歷。選項在命令列上出現的順序就是它們執行的順序(在遍歷約束內)。

-strip-debug

此選項會讓 opt 在套用其他最佳化之前,先從模組中移除除錯資訊。它與 -strip 基本上相同,但它確保會先移除除錯資訊。

-verify-each

此選項會讓 opt 在命令列上指定的每個階段之後(包括 -verify)新增一個驗證階段。這在懷疑某個階段建立了無效模組,但不清楚是哪個階段造成的情況下很有用。

-stats

列印統計資訊。

-time-passes

記錄每個階段所需的時間,並將其列印到標準錯誤輸出。

-debug

如果這是除錯建置,則此選項將會啟用使用 LLVM_DEBUG() 巨集的階段的除錯列印。如需詳細資訊,請參閱《LLVM 程式設計師手冊》的 #DEBUG 章節。

-load=<plugin>

載入動態物件 plugin。此物件應註冊新的最佳化或分析階段。載入後,該物件將會新增新的命令列選項,以啟用各種最佳化或分析。若要查看新的完整最佳化清單,請同時使用 -help-load 選項。例如

opt -load=plugin.so -help
-print-passes

列印所有可用的階段並結束。

結束狀態

如果 opt 成功,它將會以 0 結束。否則,如果發生錯誤,它將會以非零值結束。