2012-11-29 28 views
12

現在我們正在執行llvm的分析階段,跟隨this tutorial。並需要通過額外的參數插件,例如下面:是否有可能爲用戶定義的通道添加參數llvm

opt -load /path/to/myplugin.so -mypass -mypass_option input.bc 

但是我沒有找到任何手動告訴我該怎麼做。所以我想知道在實踐中是否可能。

在此先感謝。

+0

這個特殊的例子不是最優的,因爲這個習慣用法是從'stdin'中讀取的。大概你有另一個用例呢? –

+0

你需要什麼樣的論點?據我所知,通過應該從IR中獲取所需的一切,然後再次輸出IR。 –

+0

@TobiasLangner這是一些像'-mypass'通行證的分析級別或分析位置的參數。也許它就像gcc優化級別「-O1」,「-O2」等。 –

回答

9

您應該使用內置LLVM的CommandLine庫。基本上,你只要把在傳球的.cpp文件的頂部:

#include "llvm/Support/CommandLine.h" 

static cl::opt<string> InputFilename("mypass_option", cl::desc("Specify input filename for mypass"), cl::value_desc("filename")); 

但我建議你檢查上面的鏈接,它有完整的參考+便捷快速入門部分。

例如,看看內置的loop unrolling pass - 它使用cl::opt<unsigned>和定義了源文件頂部的兩個無符號和兩個布爾選項。

相關問題