llvm将控制流图转储到pass中的文件

sim*_*ser 5 llvm llvm-3.1 control-flow-graph

我想在我的一个传递中在llvm中构建一个控制流图图.我目前使用以下内容来显示CFG

block->getParent()->viewCFG(); //block is a basic block
Run Code Online (Sandbox Code Playgroud)

问题是它会弹出一个窗口.我只想将cfg转储到该特定程序点,作为点文件(如果可能的话,还是jpg),不要显示在窗口中.我怎么能这样做?我正在使用llvm 3.1.

注意:我正在修改我的传递中的cfg,在该程序点之前.因此,我无法使用opt -view-cfg.

更新:

感谢Mishr,我能够用这个绘制图形

WriteGraph(File, (const llvm::Function*) &fun, true, "test"); //I have also tired with false

显示了CFG.但节点是空白的.如何显示节点的内容

shr*_*hrm 3

看看这个,阅读函数之前的注释viewCFG()

http://llvm.org/docs/doxygen/html/CFGPrinter_8cpp_source.html

viewCFG()功能用于在新窗口中打印 CFG。要将 CFG 转储到文件中,您必须使用CFGPrinter可由句柄调用的 pass dot-cfg