{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,26]],"date-time":"2026-09-26T11:59:09Z","timestamp":1790423949894,"version":"4.1.0"},"reference-count":44,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA1","license":[{"start":{"date-parts":[[2026,4,10]],"date-time":"2026-04-10T00:00:00Z","timestamp":1775779200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/legalcode"}],"funder":[{"DOI":"10.13039\/501100004901","name":"Funda\u00e7\u00e3o de Amparo \u00e0 Pesquisa do Estado de Minas Gerais","doi-asserted-by":"publisher","award":["APQ-00440-23"],"award-info":[{"award-number":["APQ-00440-23"]}],"id":[{"id":"10.13039\/501100004901","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100003593","name":"Conselho Nacional de Desenvolvimento Cient\u00edfico e Tecnol\u00f3gico","doi-asserted-by":"publisher","award":["444127\/2024-0"],"award-info":[{"award-number":["444127\/2024-0"]}],"id":[{"id":"10.13039\/501100003593","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100002322","name":"Coordena\u00e7\u00e3o de Aperfei\u00e7oamento de Pessoal de N\u00edvel Superior","doi-asserted-by":"publisher","award":["PrInt"],"award-info":[{"award-number":["PrInt"]}],"id":[{"id":"10.13039\/501100002322","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2026,4,10]]},"abstract":"<jats:p>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\u2019s execution and uses it to guide optimizations such as inlining, and code layout. However, these very transformations alter the program\u2019s 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)\u2013based 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.<\/jats:p>","DOI":"10.1145\/3798247","type":"journal-article","created":{"date-parts":[[2026,4,10]],"date-time":"2026-04-10T14:33:43Z","timestamp":1775831623000},"page":"1295-1320","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Automatic Propagation of Profile Information through the Optimization Pipeline"],"prefix":"10.1145","volume":"10","author":[{"ORCID":"https:\/\/orcid.org\/0009-0000-8060-4186","authenticated-orcid":false,"given":"Elisa","family":"Fr\u00f6hlich","sequence":"first","affiliation":[{"name":"Federal University of Minas Gerais, Belo Horizonte, Brazil"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5256-2054","authenticated-orcid":false,"given":"Ang\u00e9lica","family":"Moreira","sequence":"additional","affiliation":[{"name":"Microsoft Research, Redmond, Brazil"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0375-1657","authenticated-orcid":false,"given":"Fernando","family":"Magno Quint\u00e3o Pereira","sequence":"additional","affiliation":[{"name":"Federal University of Minas Gerais, Belo Horizonte, Brazil"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2026,4,10]]},"reference":[{"key":"e_1_3_1_2_2","doi-asserted-by":"publisher","unstructured":"Saed Alrabaee Mourad Debbabi Paria Shirani Lingyu Wang Amr Youssef Ashkan Rahimian Lina Nouh Djedjiga Mouheb He Huang and Aiman Hanna. 2020. Binary Analysis Overview. Springer International Publishing Berlin Heidelberg 7-44. doi:10.1007\/978-3-030-34238-8_2","DOI":"10.1007\/978-3-030-34238-8_2"},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/3640537.3641573"},{"key":"e_1_3_1_4_2","first-page":"1","volume-title":"WCSS","author":"Baker Brenda S","year":"1999","unstructured":"Brenda S Baker, Udi Manber, and Robert Muth. 1999. Compressing Differences of Executable Code. In WCSS. Citeseer Princeton, NJ, USA, ACM, New York, US, 1-10."},{"key":"e_1_3_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/155090.155119"},{"key":"e_1_3_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/3185768.3185771"},{"key":"e_1_3_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/239912.239923"},{"key":"e_1_3_1_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854044"},{"key":"e_1_3_1_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/512644.512651"},{"key":"e_1_3_1_10_2","doi-asserted-by":"publisher","unstructured":"Anderson Faustino da Silva Edson Borin Fernando Magno Quintao Pereira Nilton Queiroz and Otavio Oliveira Napoli. 2022. Program representations for predictive compilation: State of affairs in the early 20\u2019s. Journal of Computer Languages 73 101153 (apr 2022) 101171. doi:10.1016\/j.cola.2022.101171","DOI":"10.1016\/j.cola.2022.101171"},{"key":"e_1_3_1_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2019.00003"},{"key":"e_1_3_1_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/321694.321699"},{"key":"e_1_3_1_13_2","first-page":"161","volume-title":"DIMVA (LNI, Vol. P-46)","author":"Flake Halvar","year":"2004","unstructured":"Halvar Flake. 2004. Structural Comparison of Executable Objects. In DIMVA (LNI, Vol. P-46), Ulrich Flegel and Michael Meier (Eds.). GI, Dortmund, Germany, 161-173. https:\/\/dl.gi.de\/20.500.12116\/29199"},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/3640537.3641569"},{"key":"e_1_3_1_15_2","doi-asserted-by":"publisher","unstructured":"Elisa Fr\u00f6hlich. 2026. Artifact for Hydra: Automatic Propagation of Profile Information through the Optimization Pipeline. doi:10.5281\/zenodo.18376755","DOI":"10.5281\/zenodo.18376755"},{"key":"e_1_3_1_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/1880043.1880047"},{"key":"e_1_3_1_17_2","unstructured":"T. Glek and J. Hubicka. 2010. Optimizing real world applications with GCC Link Time Optimization. arXiv:1010.2196 [cs.PL] https:\/\/arxiv.org\/abs\/1010.2196"},{"key":"e_1_3_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/872726.806987"},{"key":"e_1_3_1_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/3446371"},{"key":"e_1_3_1_20_2","doi-asserted-by":"publisher","unstructured":"Wenlei He Juli\u00e1n Mestre Sergey Pupyrev Lei Wang and Hongtao Yu. 2022. Profile Inference Revisited. Proc. ACM Program. Lang. 6 POPL Article 52 (jan 2022) 24 pages. doi:10.1145\/3498714","DOI":"10.1145\/3498714"},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/1985441.1985453"},{"key":"e_1_3_1_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/3052973.3052974"},{"key":"e_1_3_1_23_2","unstructured":"Teresa Louise JOHNSON and Xinliang David Li. 2017. Framework for user-directed profile-driven optimizations. US Patent 9 760 351."},{"key":"e_1_3_1_24_2","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2013.6624046"},{"key":"e_1_3_1_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/3533767.3534383"},{"key":"e_1_3_1_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/1137983.1137999"},{"key":"e_1_3_1_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/272991.272995"},{"key":"e_1_3_1_28_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37682-5_8"},{"key":"e_1_3_1_29_2","first-page":"253","volume-title":"SEC (Vancouver, BC, Canada)","author":"Ming Jiang","year":"2017","unstructured":"Jiang Ming, Dongpeng Xu, Yufei Jiang, and Dinghao Wu. 2017. BinSim: Trace-Based Semantic Binary Diffing via System Call Sliced Segment Equivalence Checking. In SEC (Vancouver, BC, Canada). USENIX Association, USA, 253-270."},{"key":"e_1_3_1_30_2","doi-asserted-by":"publisher","unstructured":"Ang\u00e9lica Aparecida Moreira Guilherme Ottoni and Fernando Pereira. 2023. Beetle: A Feature-Based Approach to Reduce Staleness in Profile Data. doi:10.22541\/au.168898868.83064146\/v1","DOI":"10.22541\/au.168898868.83064146\/v1"},{"key":"e_1_3_1_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/3485521"},{"key":"e_1_3_1_32_2","volume-title":"Clang Compiler Frontend: Get to grips with the internals of a C\/C++ compiler frontend and create your own tools","author":"Murashko Ivan","year":"2024","unstructured":"Ivan Murashko. 2024. Clang Compiler Frontend: Get to grips with the internals of a C\/C++ compiler frontend and create your own tools. Packt Publishing, Birmingham, UK."},{"key":"e_1_3_1_33_2","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192374"},{"key":"e_1_3_1_34_2","unstructured":"Maksim Panchenko. 2018. Optimizing Clang : A Practical Example of Applying BOLT. https:\/\/github.com\/facebookincubator\/BOLT\/blob\/master\/docs\/OptimizingClang.md accessed on 2020-12-11."},{"key":"e_1_3_1_35_2","doi-asserted-by":"publisher","DOI":"10.5555\/3314872.3314876"},{"key":"e_1_3_1_36_2","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2010.68"},{"key":"e_1_3_1_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73562"},{"key":"e_1_3_1_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/3575693.3575727"},{"key":"e_1_3_1_39_2","first-page":"611","volume-title":"SEC (Washington, D.C.)","author":"Shin Eui Chul Richard","year":"2015","unstructured":"Eui Chul Richard Shin, Dawn Song, and Reza Moazzezi. 2015. Recognizing Functions in Binaries with Neural Networks. In SEC (Washington, D.C.). USENIX Association, USA, 611-626."},{"key":"e_1_3_1_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/3446804.3446849"},{"key":"e_1_3_1_41_2","doi-asserted-by":"publisher","DOI":"10.5555\/2563513"},{"key":"e_1_3_1_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/3544497.3544502"},{"key":"e_1_3_1_43_2","unstructured":"Zheng Wang Ken Pierce and Scott McFarling. 2000. Bmat-a binary matching tool for stale profile propagation. The Journal of Instruction-Level Parallelism 2 (2000) 1-20."},{"key":"e_1_3_1_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/192724.192725"},{"key":"e_1_3_1_45_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380210706"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3798247","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,9,26]],"date-time":"2026-09-26T11:17:46Z","timestamp":1790421466000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3798247"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,4,10]]},"references-count":44,"journal-issue":{"issue":"OOPSLA1","published-print":{"date-parts":[[2026,4,10]]}},"alternative-id":["10.1145\/3798247"],"URL":"https:\/\/doi.org\/10.1145\/3798247","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,4,10]]},"assertion":[{"value":"2025-10-09","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-02-17","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-04-10","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}