做者:snsn1984 html
PS:最近一段時間,投入在LLVM上的時間有些減小。差點把對它的研究斷掉,今天開始繼續。對LLVM的研究須要很長一段時間的堅持不懈才能夠完全搞明白。 工具
前面已經介紹過如何寫本身的PASS,而且也針對一個簡單的PASS進行了分析和介紹。相信你們也能夠從LLVM源碼中找到不少的PASS,這些PASS太多,他們每一個究竟是作什麼用?如何去調用這些系統已經有的PASS?這就是此次每日談要關注的問題。 測試
在文檔
http://llvm.org/docs/Passes.html 中,列出了全部的PASS的命令行參數以及這個PASS主要是作什麼用的。下面來實際進行測試下。
在編譯好的bin/目錄下,使用clang生成一個.bc文件做爲例子。而後使用opt工具:
./opt -print-module <test.bc > /dev/null
這裏選擇的是-print-module,對於它的介紹以下:
This pass simply prints out the entire module when it is executed.
這個文檔中的其餘Pass也是相似的。本身不但能夠在這個列表裏找到本身須要的Pass,也能夠經過這個列表來熟悉這些Pass。另外這個列表 中的Pass的源碼主要在llvm源碼/lib/Analysis和llvm源碼/lib/Transforms兩個目錄下,你們能夠根據pass的名字 本身去找。