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

Reply via email to