【发布时间】:2013-01-21 13:27:18
【问题描述】:
我刚刚开始使用 LLVM。我已经编写了自己的 Hello pass,效果很好。
现在我想使用 StackProtector.cpp 中的堆栈保护程序通行证运行 opt,但我遇到了麻烦。当我查看源代码时,看起来我应该使用标志 -stack-protector:
INITIALIZE_PASS(StackProtector, "stack-protector", "Insert stack protectors", false, false)
但是这个标志不被 opt 识别。
我不确定要“加载”哪个文件,因为它不像加载我自己的 LLVMHello.so 文件那么简单,而且我找不到 StackProtector.so 文件;我相信这可能是问题所在。
编辑:
我终于得到了 LLVMDev 的答复。实际上,我想运行的 pass 是由 llc 执行的,而不是 opt。但是,我找不到选项 -stack-protector
llc --help
因为这个选项是隐藏的。如果我这样做了
llc --help-hidden
显示pass在那里,我只需要运行
llc -print-before=stack-protector <input>
【问题讨论】:
标签: llvm