Hi all, We would like to present a reconstructor of control flow graphs using valgrind's infrastructure. The code is based on callgrind and it is available at https://github.com/rimsa/CFGgrind.
Our reconstructor profiles the program and adds execution count on every control flow edges on the CFG. The CFG contains phantom nodes to model branches not taken during the execution, and a special halt node to model flows that terminate program execution. We support successive refinements of the control flow graphs by using the outputs produced in a previous run into the next. We were able to run our reconstructor in the complete cBench and SPEC CPU2017 suites and we compared against other valgrind tools. For cBench, we are 9% faster than callgrind and 5.5 times slower than nulgrind. For SPEC CPU2017, we are 13% faster than callgrind and 4 times slower than nulgrind. We hope this tool is of interest of the community. Let us know what you think, and if further details are required. Feedback is mostly appreciated. []z, Andrei
_______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users