LAMP: A Practical Loop-Aware Memory Dependence Profiler [abstract]
Yebin Chon, Ziyang Xu, Zujun Tan, and David I. August
The Fourth Young Architect Workshop (YArch), March 2022.

Profiling can overcome the inherent limits of static memory analysis, enabling aggressive compiler optimizations, including automatic parallelization. We propose LAMP -- a Loop-Aware Memory dependence Profiler that improves precision and performance over prior profilers to make memory dependence profiling more practical. The loop-aware design of LAMP allows it to reason about dependences from function calls, making it precise to all memory dependence within any loop. The advanced profiling recognition modules capture more dynamic dependence information beyond the existence of the dependence. By targeting memory dependences that are of interest to each optimization client, LAMP dramatically reduces the runtime overhead without loss of precision. LAMP uses modularity and parallelization to improve performance furthermore. Preliminary results show that targeting reduces the number of instrumented instructions by 2.7x, and the additional pattern recognition modules can recognize recursive data structure and guide speculative optimizations.