Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #2381
| From | Fernando <pronesto@gmail.com> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | CFGGrind: Dynamic Control Flow Graph Reconstruction |
| Date | 2019-11-25 09:14 -0800 |
| Organization | Compilers Central |
| Message-ID | <19-11-004@comp.compilers> (permalink) |
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
Back to comp.compilers | Previous | Next | Find similar
CFGGrind: Dynamic Control Flow Graph Reconstruction Fernando <pronesto@gmail.com> - 2019-11-25 09:14 -0800
csiph-web