Automatically generate flowcharts out of C++ code

Konstantin picture Konstantin · Dec 5, 2014 · Viewed 7.4k times · Source

I need to automatically construct flowcharts out of C++ code, ideally one flowchart per source file. Is there any tool (preferably C++/Python and either open-sourced or highly configurable - so I may change the look) that I can use to create flowcharts?

http://www.faqs.org/patents/img/20110088010_08.png

Answer

sbabbi picture sbabbi · Dec 5, 2014

clang/llvm can generate graphviz dot files.

Example:

clang -S -emit-llvm -o hello.ll hello.cpp
opt hello.ll -dot-cfg -o hello.dot

This will output several .dot files, one for each function defined in hello.cpp. You can also generate dominance graph, post dominance graph and more (see here).

After you have your .dotfiles you can use dot to convert it to a .png file. The .dot file itself contains only the structure of the graph, so the output of dot should be highly configurable (but I am not really familiar with it).