Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #2381 > unrolled thread

CFGGrind: Dynamic Control Flow Graph Reconstruction

Started byFernando <pronesto@gmail.com>
First post2019-11-25 09:14 -0800
Last post2019-11-25 09:14 -0800
Articles 1 — 1 participant

Back to article view | Back to comp.compilers


Contents

  CFGGrind: Dynamic Control Flow Graph Reconstruction Fernando <pronesto@gmail.com> - 2019-11-25 09:14 -0800

#2381 — CFGGrind: Dynamic Control Flow Graph Reconstruction

FromFernando <pronesto@gmail.com>
Date2019-11-25 09:14 -0800
SubjectCFGGrind: Dynamic Control Flow Graph Reconstruction
Message-ID<19-11-004@comp.compilers>
Hi all,

  We would like to present CFGGrind, a dynamic control flow graph
reconstructor that uses valgrind's infrastructure. The code is based on
callgrind and it is available at https://github.com/rimsa/CFGgrind. CFGGrind
reconstructs the CFG of the part of a program that has been executed. It's
like a dynamic disassembler. CFGs are reconstructed per function.

  Our control flow graph representation uses phantom nodes to model branches
not taken during the execution. We also have a special halt node to model
flows that terminates program execution. We support successive refinements of
the control flow graphs by using the outputs produced in a previous run into
the next, and we can reconstruct the CFGs of programs that run in parallel.

  We were able to run our reconstructor in the complete SPEC CPU2017 suite and
we compared with other valgrind tools, and with other CFG reconstructors. We
are, on average, 11% faster than callgrind and 4.5% slower than nulgrind.

  Everything is free software. We hope this tool is of interest to the
community. Let us know what you think, and if further details are required.
Feedback is mostly appreciated, and if anyone wants to contribute to the
project, we will be happy to take in patches.

Regards,

Fernando

[toc] | [standalone]


Back to top | Article view | comp.compilers


csiph-web