如何将标志传递给LLVM传递?

Tza*_*rir 9 llvm

我正在实现一个LLVM传递,并希望通过命令行打开或关闭一些选项,特别是我想为我的传递使用-v详细模式.

我找不到传递任何文档中提到的命令行标志的机制,是否存在?

Tza*_*rir 12

我找到的解决方案是使用LLVM的通用CommandLine API:http://llvm.org/docs/CommandLine.html

opt动态加载传递时按预期工作.


Ric*_*ton 5

另一个有用的技巧是:

#define DEBUG_TYPE "my-special-name"
Run Code Online (Sandbox Code Playgroud)

...

#include "llvm/Support/Debug.h"
Run Code Online (Sandbox Code Playgroud)

...

撒上一堆调试输出:

DEBUG(dbgs() << "Original Frame Size: " << FrameSize << "\n" );
Run Code Online (Sandbox Code Playgroud)

...

DEBUG(Node->dump(CurDAG));
Run Code Online (Sandbox Code Playgroud)

然后,在命令行上:... -debug-only my-special-name ...将获得您的输出.

如果你的传球与铿锵前端一起运行,你可以使用:

... -mllvm -debug-only my-special-name ...


SK-*_*gic 1

如果只有一个选项有两个可能的值,最简单的方法就是用两个不同的名称注册同一个通道两次。我不知道有什么通用的解决方案,尤其是可以与opt.