paperbot · PL 论文追踪

RSS

Optimization-Aware Compiler-Level Event Profiling

TOPLAS 45(2)2023
Matteo Basso, Aleksandar Prokopec, Andrea Rosà, Walter Binder

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

Tracking specific events in a program’s execution, such as object allocation or lock acquisition, is at the heart of dynamic analysis. Despite the apparent simplicity of this task, quantifying these events is challenging due to the presence of compiler optimizations. Profiling perturbs the optimizations that the compiler would normally do—a profiled program usually behaves differently than the original one.In this article, we propose a novel technique for quantifying compiler-internal events in the optimized code, reducing the profiling perturbation on compiler optimizations. Our technique achieves this by instrumenting the program from within the compiler, and by delaying the instrumentation until the point in the compilation pipeline after which no subsequent optimizations can remove the events. We propose two different implementation strategies of our technique based on path-profiling, and a modification to the standard path-profiling algorithm that facilitates the use of the proposed strategies in a modernjust-in-time (JIT)compiler. We use our technique to analyze the behaviour of the optimizations in Graal, a state-of-the-art compiler for the Java Virtual Machine, identifying the reasons behind a performance improvement of a specific optimization, and the causes behind an unexpected slowdown of another. Finally, our evaluation results show that the two proposed implementations result in a significantly lower execution-time overhead w.r.t. a naive implementation.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot2130,
  title = {Optimization-Aware Compiler-Level Event Profiling},
  author = {Matteo Basso and Aleksandar Prokopec and Andrea Rosà and Walter Binder},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {45},
  number = {2},
  year = {2023},
  doi = {10.1145/3591473}
}