Automatic Propagation of Profile Information through the Optimization Pipeline
Elisa Fröhlich, Angelica Aparecida Moreira, Fernando Magno Quintão Pereira
摘要
Profile-guided optimization (PGO) is a well-established technique for improving program performance, being integrated into major compilers such as GCC, LLVM/Clang, and Microsoft Visual C++. PGO collects information about a program's execution and uses it to guide optimizations such as inlining, and code layout. However, these very transformations alter the program's control flow, rendering the collected profiles stale or inaccurate. To deal with this problem, this paper investigates how to reuse profile data after optimization without re-executing the program. We study two complementary strategies: prediction, which estimates likely hot code paths in the optimized program, and projection, which transfers profile information from the original control-flow graph to its transformed version. We evaluate several techniques for reconstructing profile data, including a large language model (LLM)-based approach using GPT-4o, and a lightweight method that compares opcode histograms of code regions recursively to identify structural similarities. Our results show that the histogram-based method is not only simpler but also consistently more accurate than both the LLM-based approach and prior prediction and projection techniques, including those implemented in LLVM and the BOLT binary optimizer.
CCS Concepts: • Software and its engineering → Compilers.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper2
- Wax: Optimizing Data Center Applications With Stale ProfileTawhid Bhuiyan, Sumya Hoque, Angelica Aparecida Moreira, Tanvir Ahmed KhanASPLOS 2026 · 被引用 1 次
- Symbolic Basic Block Profiling for Machine Learning KernelsJingyu Qiu, Rongcui Dong, Sreepathi PaiOOPSLA 2026
它引用的顶会 Paper6
- Asm2Vec: Boosting Static Representation Robustness for Binary Clone Search against Code Obfuscation and Compiler OptimizationSteven H. H. Ding, Benjamin C. M. Fung, Philippe CharlandS&P 2019 · 被引用 447 次
- BinSim: Trace-based Semantic Binary Diffing via System Call Sliced Segment Equivalence CheckingJiang Ming, Dongpeng Xu, Yufei Jiang, Dinghao WuUSENIX Security 2017 · 被引用 118 次
- Propeller: A Profile Guided, Relinking Optimizer for Warehouse-Scale ApplicationsHan Shen, Krzysztof Pszeniczny, Rahman Lavaee, Snehasish Kumar 等ASPLOS 2023 · 被引用 37 次
- Improving cross-platform binary analysis using representation learning via graph alignmentGeunwoo Kim, Sanghyun Hong, Michael Franz, Dokyung SongISSTA 2022 · 被引用 25 次
- VESPA: static profiling for binary optimizationAngelica Aparecida Moreira, Guilherme Ottoni, Fernando Magno Quintão PereiraOOPSLA 2021 · 被引用 18 次
相关 Paper
- Profile inference revisitedWenlei He, Julián Mestre, Sergey Pupyrev, Lei Wang 等POPL 2022 · 被引用 16 次
- ProfiX: Improving Profile-Guided Optimization in Compilers with Graph Neural NetworksHuiri Tan, Juyong Jiang, Jiasi ShenNeurIPS 2025 · 被引用 4 次
- Can Large Language Models Understand Intermediate Representations in Compilers?Hailong Jiang, Jianfeng Zhu, Yao Wan, Bo Fang 等ICML 2025
- Phaedrus: Predicting Dynamic Application Behavior with Lightweight Generative Models and LLMsBodhisatwa Chatterjee, Neeraj Jadhav, Santosh PandeOOPSLA 2026
- Not so fast: understanding and mitigating negative impacts of compiler optimizations on code reuse gadget setsMichael D. Brown, Matthew Pruett, Robert Bigelow, Girish Mururu 等OOPSLA 2021 · 被引用 11 次
