Whole program paths (WPP) are a new approach to capturing and representing a program’s dynamic—actually executed—control flow. Unlike other path profiling techniques, which record intraprocedural or acyclic paths, WPPs produce a single, compact description of a program’s entire control flow, including loop iteration and interprocedural paths. This paper explains how to collect and represent WPPs. It also shows how to use WPPs to find hot subpaths, which are the heavily executed sequences of code that should be the focus of performance tuning and compiler optimization. Keywords dynamic program measurement, program tracing, path profiling, program control flow, data compression
James R. Larus