Perfrewrite -- Program Complexity Analysis via Source Code Instrumentation
arXiv:1409.2089
Abstract
Most program profiling methods output the execution time of one specific program execution, but not its computational complexity class in terms of the big-O notation. Perfrewrite is a tool based on LLVM's Clang compiler to rewrite a program such that it tracks semantic information while the program executes and uses it to guess memory usage, communication and computational complexity. While source code instrumentation is a standard technique for profiling, using it for deriving formulas is an uncommon approach.
ACACES 2012 summer school (2012)