现在我们正在按照本教程为llvm实施分析过程。并且需要向插件传递一个附加参数,如下所示:
opt -load /path/to/myplugin.so -mypass -mypass_option input.bc
但是我没有找到任何手册告诉我该怎么做。所以我想知道在实践中是否可能。
提前致谢。
现在我们正在按照本教程为llvm实施分析过程。并且需要向插件传递一个附加参数,如下所示:
opt -load /path/to/myplugin.so -mypass -mypass_option input.bc
但是我没有找到任何手册告诉我该怎么做。所以我想知道在实践中是否可能。
提前致谢。
您应该使用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"));
但我建议你查看上面的链接,它有完整的参考 + 方便的快速入门部分。
举个例子,看看内置的循环展开 pass - 它定义了两个无符号和两个布尔选项,就在源文件的顶部,使用cl::opt<unsigned>
and cl::opt<bool>
。