天天看點

LLVM每日談之十三 使用LLVM自帶的PASS

PS:最近一段時間,投入在LLVM上的時間有些減少。差點把對它的研究斷掉,今天開始繼續。對LLVM的研究需要很長一段時間的堅持不懈才可以徹底搞明白。

前面已經介紹過如何寫自己的PASS,并且也針對一個簡單的PASS進行了分析和介紹。相信大家也可以從LLVM源碼中找到很多的PASS,這些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的名字自己去找。