现在,我们在this tutorial之后实现对 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"));
但是我建议您检查上面的链接,它具有完整的引用资料+便捷的快速入门部分。
例如,看看内置的loop unrolling pass-它使用
cl::opt<unsigned>
和cl::opt<bool>
在源文件的顶部定义了两个无符号和两个 bool 选项。关于c++ - 是否可以在llvm中为用户定义的过程添加参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13626993/