现在,我们在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/

10-12 23:58