k-BLPP - Ball-Larus path profiling across multiple loop iterations
Authors/Creators
- 1. Sapienza University of Rome
Description
The Ball-Larus path profiling technique is a powerful methodology for intraprocedural program analysis. Identifying the hottest paths in the control flow graph of a routine, for instance, can direct optimizations to portions of the code where most resources are consumed. However, a shortcoming of this technique was the inability to profile cyclic paths, making it difficult to mine execution patterns that span multiple loop iterations.
In the paper Ball-Larus path profiling across multiple loop iterations appeared at OOPSLA '13 (28th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications), we present a new approach to multi-iteration path profiling that allows the profiling of all executed paths obtained as a concatenation of up to k Ball-Larus acyclic paths, where k is a user-defined parameter.
We provide examples showing that this method can reveal optimization opportunities that acyclic-path profiling would miss, and an extensive experimental evaluation on the Jikes RVM shows that our approach can be even faster than Ball-Larus due to fewer operations on smaller hash tables, producing compact representations of cyclic paths even for large values of k.
The present artifact has been endorsed by the OOPSLA Artifact Evaluation Committee. In the archive we provide:
- a VirtualBox disk image containing a lightweight Linux distribution fully configured for using our profiler
- a thorough Getting started guide
- source code and other materials
Files
Additional details
Related works
- Is supplement to
- 10.1145/2509136.2509521 (DOI)