LLVM 生成的文件转png图片
LLVM是一个编译器框架,其前端编译器可以使用clang,可以把c文件编译成IR中间文件。但是如果代码量较大,IR文件查看不是很直观,LLVM提供了可以把IR文件转成png图片的工具。
- 下载graphviz源码,例如graphviz-2.48.0.tar.gz。解压后,修改配置文件config.h.in,找到HAVE_GD_PNG这一项,在其下面可以加一句
#define HAVA_GD_PNG
目的是使其能支持到处png图片。
2. 编译graphviz。命令分别为./configure && make && make install。遇到编译问题,自行解决编译问题。
3. 执行opt -dot-cfg xxx.ll //opt为llvm的工具,xxx.ll为clang生成的可视化IR文件。这个过程可能生成多个dot文件,每个dot文件对应IR文件中的一个函数。
4. 把dot文件转成png。 dot cfg_xxx.dot -Tpng -o xxxx.png //cfg_xxx.dot为使用opt命令操作ll文件生成的dot文件。
至此,xxxx.png就是生成的图片文件,可以直观查看函数中执行流程。