{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,22]],"date-time":"2026-07-22T22:56:58Z","timestamp":1784761018876,"version":"3.55.0"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2021,10,15]],"date-time":"2021-10-15T00:00:00Z","timestamp":1634256000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100004901","name":"Funda\u00e7\u00e3o de Amparo \u00e0 Pesquisa do Estado de Minas Gerais","doi-asserted-by":"crossref","award":["PPM-00333-18"],"award-info":[{"award-number":["PPM-00333-18"]}],"id":[{"id":"10.13039\/501100004901","id-type":"DOI","asserted-by":"crossref"}]},{"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"}]},{"DOI":"10.13039\/501100003593","name":"Conselho Nacional de Desenvolvimento Cient\u00edfico e Tecnol\u00f3gico","doi-asserted-by":"publisher","award":["406377\/2018-9"],"award-info":[{"award-number":["406377\/2018-9"]}],"id":[{"id":"10.13039\/501100003593","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":[[2021,10,20]]},"abstract":"<jats:p>\n            Over the past few years, there has been a surge in the popularity of binary optimizers such as BOLT, Propeller, Janus and HALO. These tools use dynamic profiling information to make optimization decisions. Although effective, gathering runtime data presents developers with inconveniences such as unrepresentative inputs, the need to accommodate software modifications, and longer build times. In this paper, we revisit the static profiling technique proposed by Calder\n            <jats:italic>et al.<\/jats:italic>\n            in the late 90\u2019s, and investigate its application to drive binary optimizations, in the context of the BOLT binary optimizer, as a replacement for dynamic profiling. A few core modifications to Calder et al.\u2019s original proposal, consisting of new program features and a new regression model, are sufficient to enable some of the gains obtained through runtime profiling. An evaluation of BOLT powered by our static profiler on four large benchmarks (clang, GCC, MySQL and PostgreSQL) yields binaries that are 5.47\u00a0% faster than the executables produced by clang -O3.\n          <\/jats:p>","DOI":"10.1145\/3485521","type":"journal-article","created":{"date-parts":[[2021,10,15]],"date-time":"2021-10-15T19:18:28Z","timestamp":1634325508000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["VESPA: static profiling for binary optimization"],"prefix":"10.1145","volume":"5","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-5256-2054","authenticated-orcid":false,"given":"Ang\u00e9lica Aparecida","family":"Moreira","sequence":"first","affiliation":[{"name":"Federal University of Minas Gerais, Brazil"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Guilherme","family":"Ottoni","sequence":"additional","affiliation":[{"name":"Facebook, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0375-1657","authenticated-orcid":false,"given":"Fernando Magno","family":"Quint\u00e3o Pereira","sequence":"additional","affiliation":[{"name":"Federal University of Minas Gerais, Brazil"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2021,10,15]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cola.2021.101062"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.neunet.2021.01.026"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/173262.155119"},{"key":"e_1_2_2_4_1","volume-title":"Murray","author":"Bandyopadhyay Sumit","year":"1987"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/239912.239923"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854044"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1214\/aoms\/1177698950"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/11572961_27"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/143365.143493"},{"key":"e_1_2_2_10_1","volume-title":"Patterson","author":"Hennessy John L.","year":"2011"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/178243.178478"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/CLUSTER.2017.29"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICASSP.2016.7472159"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1772954.1772964"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/ACCESS.2017.2772334"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1878921.1878951"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192374"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2017.7863743"},{"key":"e_1_2_2_19_1","unstructured":"Maksim Panchenko. 2018. Optimizing Clang : A Practical Example of Applying BOLT. https:\/\/github.com\/facebookincubator\/BOLT\/blob\/master\/docs\/OptimizingClang.md  Maksim Panchenko. 2018. Optimizing Clang : A Practical Example of Applying BOLT. https:\/\/github.com\/facebookincubator\/BOLT\/blob\/master\/docs\/OptimizingClang.md"},{"key":"e_1_2_2_20_1","volume-title":"BOLT: A Practical Binary Optimizer for Data Centers and Beyond","author":"Panchenko Maksim","year":"2019"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3446804.3446843"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3280848"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.7939\/R3GF0MX64"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1090\/s0002-9947-1953-0053041-6"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2907"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3355378.3355383"},{"key":"e_1_2_2_27_1","volume-title":"A Study of Branch Prediction Strategies","author":"Smith James E.","year":"1871"},{"key":"e_1_2_2_28_1","unstructured":"Sriraman Tallam. 2019. Profile Guided Optimizing Large Scale LLVM-based Relinker. Google. https:\/\/github.com\/google\/llvm-propeller\/blob\/plo-dev\/Propeller_RFC.pdf  Sriraman Tallam. 2019. Profile Guided Optimizing Large Scale LLVM-based Relinker. Google. https:\/\/github.com\/google\/llvm-propeller\/blob\/plo-dev\/Propeller_RFC.pdf"},{"key":"e_1_2_2_29_1","volume-title":"Improving Branch Prediction By Modeling Global History with Convolutional Neural Networks. CoRR, abs\/1906.09889","author":"Tarsa Stephen J.","year":"2019"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3078633.3081037"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2018.2817118"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/192724.192725"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485521","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3485521","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:18:40Z","timestamp":1750191520000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3485521"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,10,15]]},"references-count":32,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2021,10,20]]}},"alternative-id":["10.1145\/3485521"],"URL":"https:\/\/doi.org\/10.1145\/3485521","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,10,15]]},"assertion":[{"value":"2021-10-15","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}