Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
A simple algorithm for finding frequent elements in streams and bags
ACM Transactions on Database Systems (TODS)
Targeted Path Profiling: Lower Overhead Path Profiling for Staged Dynamic Optimization Systems
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Practical Path Profiling for Dynamic Optimizers
Proceedings of the international symposium on Code generation and optimization
Profiling k-Iteration Paths: A Generalization of the Ball-Larus Profiling Algorithm
Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
Hi-index | 0.00 |
Most of the traditional path profilers simply generate a path-frequency table that records the raw frequencies of each path. The compiler is supposed to carry out the herculean task of mining this table for frequently executed paths to drive aggressive profile-guided optimizations. This begs a question: why cannot profilers themselves identify these frequent paths --- produce information that can be consumed directly by the optimizers? The essential theme of this paper is that the sequence of acyclic paths emitted by a classic Ball-Larus profiler can be viewed as a data-stream: this enables an online extraction of any required statistics (like the frequently executed paths) on the profile information without requiring storage and update of the huge path-frequency tables generated by a long-running program. We adapt a classic data stream algorithm for finding majority elements in a stream (by Karp et al.) for our use, essentially by enabling optimizations that exploit the properties of paths generated off a Ball-Larus profiler. We instantiate our ideas by building an efficient path profiler that identifies all acyclic paths frequented above a user-provided threshold percentage of all executed paths.