The design and evaluation of path matching schemes on compressed control flow traces
A control flow trace captures the complete sequence of dynamically executed basic blocks and function calls. It is usually of very large size and therefore commonly stored in compressed format. On the other hand, control flow traces are frequently queried to assist program analysis and optimization, e.g. finding frequently executed subpaths that may be optimized. In this paper, we identify path interruption and path context problems in querying an intraprocedural path over control flow traces. While algorithms that perform pattern matching on compressed strings have been proposed, solving new challenges requires the extension of traditional algorithms. We design and evaluate four path matching schemes including those that match in the compressed data directly and those that match after decompression. In addition, simple indices are also designed to improve matching performance. Our experimental results show that these schemes are practical and can be adapted to environments with different hardware settings and path matching requests.