{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T11:07:30Z","timestamp":1784200050834,"version":"3.55.0"},"reference-count":68,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,6,10]]},"abstract":"<jats:p>\n                    Incorrect compiler optimizations can lead to unintended program behavior and security vulnerabilities. However, the enormous size and complexity of modern compilers make it challenging to ensure the correctness of optimizations. The problem becomes more severe as compiler engineers continuously add new optimizations to improve performance and support new language features. In this paper, we propose\n                    <jats:sc>Optimuzz<\/jats:sc>\n                    , a framework to effectively detect incorrect optimization bugs in such continuously changing compilers. The key idea is to combine two complementary techniques: directed grey-box fuzzing and translation validation. We design a novel optimization-directed fuzzing framework that efficiently generates input programs to trigger specific compiler optimizations.\n                    <jats:sc>Optimuzz<\/jats:sc>\n                    then uses existing translation validation tools to verify the correctness of the optimizations on the input programs. We instantiate our approach for two major compilers, LLVM and\n                    <jats:sc>TurboFan<\/jats:sc>\n                    . The results show that\n                    <jats:sc>Optimuzz<\/jats:sc>\n                    can effectively detect miscompilation bugs in these compilers, outperforming state-of-the-art tools. We also applied\n                    <jats:sc>Optimuzz<\/jats:sc>\n                    to the latest version of LLVM and discovered 55 new miscompilation bugs.\n                  <\/jats:p>","DOI":"10.1145\/3729275","type":"journal-article","created":{"date-parts":[[2025,6,13]],"date-time":"2025-06-13T16:02:27Z","timestamp":1749830547000},"page":"627-650","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Optimization-Directed Compiler Fuzzing for Continuous Translation Validation"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0009-0001-1927-5077","authenticated-orcid":false,"given":"Jaeseong","family":"Kwon","sequence":"first","affiliation":[{"name":"KAIST, Daejeon, Republic of Korea"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-5099-9526","authenticated-orcid":false,"given":"Bongjun","family":"Jang","sequence":"additional","affiliation":[{"name":"KAIST, Daejeon, Republic of Korea"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8152-9330","authenticated-orcid":false,"given":"Juneyoung","family":"Lee","sequence":"additional","affiliation":[{"name":"AWS, Austin, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2671-0142","authenticated-orcid":false,"given":"Kihong","family":"Heo","sequence":"additional","affiliation":[{"name":"KAIST, Daejeon, Republic of Korea"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,6,13]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"crossref","unstructured":"Lukas Bernhard Tobias Scharnowski Moritz Schloegel Tim Blazytko and Thorsten Holz. 2022. Jit-Picking: Differential Fuzzing of JavaScript Engines. In ACM Conference on Computer and Communications Security (CCS).","DOI":"10.1145\/3548606.3560624"},{"key":"e_1_3_2_3_2","doi-asserted-by":"crossref","unstructured":"Marcel B\u00f6hme Van-Thuan Pham Manh-Dung Nguyen and Abhik Roychoudhury. 2017. Directed Greybox Fuzzing. In Proceedings of ACM SIGSAC Conference on Computer and Communications Security (CCS).","DOI":"10.1145\/3133956.3134020"},{"key":"e_1_3_2_4_2","doi-asserted-by":"crossref","unstructured":"Marcel B\u00d6hme Van-Thuan Pham and Abhik Roychoudhury. 2016. Coverage-Based Greybox Fuzzing as Markov Chain. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security (CCS).","DOI":"10.1145\/2976749.2978428"},{"key":"e_1_3_2_5_2","doi-asserted-by":"crossref","unstructured":"Hongxu Chen Yinxing Xue Yuekang Li Bihuan Chen Xiaofei Xie Xiuheng Wu and Yang Liu. 2018. Hawkeye: Towards a Desired Directed Grey-Box Fuzzer. In Proceedings of ACM SIGSAC Conference on Computer and Communications Security (CCS).","DOI":"10.1145\/3243734.3243849"},{"key":"e_1_3_2_6_2","unstructured":"Chromium. 2021.Issue1195650 . https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=1195650"},{"key":"e_1_3_2_7_2","unstructured":"Chromium. 2021. Issue1198705. https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=l 198705"},{"key":"e_1_3_2_8_2","unstructured":"Chromium. 2021. Issue1199345. https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=1199345"},{"key":"e_1_3_2_9_2","unstructured":"Chromium. 2021. Issue1200490. https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=1200490"},{"key":"e_1_3_2_10_2","unstructured":"Chromium. 2021. Issue1234764. https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=1234764"},{"key":"e_1_3_2_11_2","unstructured":"Chromium. 2021. Issue1234770. https:\/\/bugs.chromium.org\/p\/chromium\/issues\/detail?id=1234770"},{"key":"e_1_3_2_12_2","unstructured":"Zhengjie Du Yuekang Li Yang Liu and Bing Mao. 2022. Windranger: A Directed Greybox Fuzzer Driven by Deviation Basic Blocks. In Proceedings of the International Conference on Software Engineering (ICSE)."},{"key":"e_1_3_2_13_2","doi-asserted-by":"crossref","unstructured":"Karine Even-Mendoza Arindam Sharma Alastair F. Donaldson and Cristian Cadar. 2023. GrayC: Greybox Fuzzing of Compilers and Analysers for C. In Proceedings of ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA).","DOI":"10.1145\/3597926.3598130"},{"key":"e_1_3_2_14_2","doi-asserted-by":"crossref","unstructured":"Yuyou Fan and John Regehr. 2024. High-Throughput Formal-Methods-Assisted Fuzzing for LLVM. Proceedings of the International Symposium on Code Generation and Optimization (CGO) (2024).","DOI":"10.1109\/CGO57630.2024.10444854"},{"key":"e_1_3_2_15_2","doi-asserted-by":"crossref","unstructured":"Andrea Fioraldi Daniele Cono D\u2019Elia and Emilio Coppa. 2020. WEIZZ: Automatic Grey-Box Fuzzing for Structured Binary Formats. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA).","DOI":"10.1145\/3395363.3397372"},{"key":"e_1_3_2_16_2","unstructured":"Google. 2008.mjsunit. https:\/\/chromium.googlesource.com\/v8\/v8\/+\/master\/test\/mjsunit\/"},{"key":"e_1_3_2_17_2","unstructured":"Google. 2008. V8. https:\/\/v8.dev"},{"key":"e_1_3_2_18_2","doi-asserted-by":"crossref","unstructured":"Samuel Gro\u00df Simon Koch Lukas Bernhard Thorsten Holz and Martin Johns. 2023. FUZZILLI: Fuzzing for JavaScript JIT Compiler Vulnerabilities. In Network and Distributed System Security Symposium (NDSS).","DOI":"10.14722\/ndss.2023.24290"},{"key":"e_1_3_2_19_2","unstructured":"HyungSeok Han DongHyeon Oh and Sang Kil Cha. 2019. CodeAlchemist: Semantics-Aware Code Generation to Find Vulnerabilities in JavaScript Engines. In Network and Distributed System Security Symposium (NDSS)."},{"key":"e_1_3_2_20_2","unstructured":"Christian Holler Kim Herzig and Andreas Zeller. 2012. Fuzzing with Code Fragments. In Proceedings of the USENIX Security Symposium (Security)."},{"key":"e_1_3_2_21_2","doi-asserted-by":"crossref","unstructured":"Heqing Huang Yiyuan Guo Qingkai Shi Peisen Yao Rongxin Wu and Charles Zhang. 2022. Beacon: Directed Grey-Box Fuzzing with Provable Path Pruning. In Proceedings of the IEEE Symposium on Security and Privacy (SP).","DOI":"10.1109\/SP46214.2022.9833751"},{"key":"e_1_3_2_22_2","unstructured":"Tae Eun Kim Jaeseung Choi Kihong Heo and Sang Kil Cha. 2023. DAFL: Directed Grey-Box Fuzzing Guided by Data Dependency. In Proceedings of the USENIX Security Symposium (Security)."},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","unstructured":"Jaeseong Kwon Bongjun Jang Juneyoung Lee and Kihong Heo. 2025. Optimization-Directed Compiler Fuzzing for Continuous Translation Validation. (2025). https:\/\/doi.org\/10.5281\/zenodo.15037303 10.5281\/zenodo.15037303","DOI":"10.5281\/zenodo.15037303"},{"key":"e_1_3_2_24_2","doi-asserted-by":"crossref","unstructured":"Seungwan Kwon Jaeseong Kwon Wooseok Kang Juneyoung Lee and Kihong Heo. 2024. Translation Validation for JIT Compiler in the V8 JavaScript Engine. In Proceedings of the International Conference on Software Engineering (ICSE).","DOI":"10.1145\/3597503.3639189"},{"key":"e_1_3_2_25_2","unstructured":"C. Lattner and V. Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In International Symposium on Code Generation and Optimization."},{"key":"e_1_3_2_26_2","unstructured":"Suyoung Lee HyungSeok Han Sang Kil Cha and Sooel Son. 2020. Montage: A Neural Network Language Model- Guided JavaScript Engine Fuzzer. In Proceedings of the USENIX Security Symposium (Security) Srdjan Capkun and Franziska Roesner (Eds.)."},{"key":"e_1_3_2_27_2","unstructured":"Shaohua Li and Zhendong Su. 2024. UBFuzz: Finding Bugs in Sanitizer Implementations. In Proceedings of the ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS)."},{"key":"e_1_3_2_28_2","unstructured":"Shaohua Li Theodoros Theodoridis and Zhendong Su. 2024. Boosting Compiler Testing by Injecting Real-World Code. In ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI)."},{"key":"e_1_3_2_29_2","doi-asserted-by":"crossref","unstructured":"Eric Liu Shengjie Xu and David Lie. 2023. FLUX: Finding Bugs with LLVM IR Based Unit Test Crossovers. In International Conference on Automated Software Engineering (ASE).","DOI":"10.1109\/ASE56229.2023.00100"},{"key":"e_1_3_2_30_2","unstructured":"Liu Eric. 2024. FLUX Unit Test Suite. https:\/\/github.com\/ericliuu\/flux\/blob\/main\/scripts\/collect_unittest_functions.py"},{"key":"e_1_3_2_31_2","doi-asserted-by":"crossref","unstructured":"Vsevolod Livinskii Dmitry Babokin and John Regehr. 2020. Random Testing for C and C++ Compilers with YARPGen. Proceedings of the ACM on Programming Languages (2020).","DOI":"10.1145\/3428264"},{"key":"e_1_3_2_32_2","doi-asserted-by":"crossref","unstructured":"Vsevolod Livinskii Dmitry Babokin and John Regehr. 2023. Fuzzing Loop Optimizations in Compilers for C++ and Data-Parallel Languages. Proc. ACM Program. Lang. PLDI (2023).","DOI":"10.1145\/3591295"},{"key":"e_1_3_2_33_2","unstructured":"LLVM. 2016. LLVM InstCombine Unit Test Suite. https:\/\/github.com\/llvm\/llvm-project\/tree\/main\/llvm\/test\/ Transforms\/InstCombine"},{"key":"e_1_3_2_34_2","unstructured":"LLVM. 2022.Issue55291. https:\/\/github.com\/llvm\/llvm-project\/issues\/55291"},{"key":"e_1_3_2_35_2","unstructured":"LLVM. 2022.Issue57357. https:\/\/github.com\/llvm\/llvm-project\/issues\/57357"},{"key":"e_1_3_2_36_2","unstructured":"LLVM. 2022.Issue57683. https:\/\/github.com\/llvm\/llvm-project\/issues\/57683"},{"key":"e_1_3_2_37_2","unstructured":"LLVM. 2022.Issue58977. https:\/\/github.com\/llvm\/llvm-project\/issues\/58977"},{"key":"e_1_3_2_38_2","unstructured":"LLVM. 2022.Issue59279. https:\/\/github.com\/llvm\/llvm-project\/issues\/59279"},{"key":"e_1_3_2_39_2","unstructured":"LLVM. 2022.Issue59301. https:\/\/github.com\/llvm\/llvm-project\/issues\/59301"},{"key":"e_1_3_2_40_2","unstructured":"LLVM. 2023.Issue59836. https:\/\/github.com\/llvm\/llvm-project\/issues\/59836"},{"key":"e_1_3_2_41_2","unstructured":"LLVM. 2023.Issue61312. https:\/\/github.com\/llvm\/llvm-project\/issues\/61312"},{"key":"e_1_3_2_42_2","unstructured":"LLVM. 2023.Issue62401. https:\/\/github.com\/llvm\/llvm-project\/issues\/62401"},{"key":"e_1_3_2_43_2","unstructured":"LLVM. 2023.Issue62901. https:\/\/github.com\/llvm\/llvm-project\/issues\/62901"},{"key":"e_1_3_2_44_2","unstructured":"LLVM. 2023.Issue63327. https:\/\/github.com\/llvm\/llvm-project\/issues\/63327"},{"key":"e_1_3_2_45_2","unstructured":"LLVM. 2023.Issue64339. https:\/\/github.com\/llvm\/llvm-project\/issues\/64339"},{"key":"e_1_3_2_46_2","unstructured":"LLVM. 2023.Issue70470. https:\/\/github.com\/llvm\/llvm-project\/issues\/70470"},{"key":"e_1_3_2_47_2","unstructured":"LLVM. 2023.Issue72911. https:\/\/github.com\/llvm\/llvm-project\/issues\/72911"},{"key":"e_1_3_2_48_2","unstructured":"LLVM. 2023.Issue74890. https:\/\/github.com\/llvm\/llvm-project\/issues\/74890"},{"key":"e_1_3_2_49_2","unstructured":"LLVM. 2023.Issue75437. https:\/\/github.com\/llvm\/llvm-project\/issues\/75437"},{"key":"e_1_3_2_50_2","unstructured":"LLVM. 2023.Issue76441. https:\/\/github.com\/llvm\/llvm-project\/issues\/76441"},{"key":"e_1_3_2_51_2","unstructured":"LLVM. 2024.Issue84025. https:\/\/github.com\/llvm\/llvm-project\/issues\/84025"},{"key":"e_1_3_2_52_2","unstructured":"LLVM. 2024.Issue89390. https:\/\/github.com\/llvm\/llvm-project\/issues\/89390"},{"key":"e_1_3_2_53_2","unstructured":"LLVM. 2024.Issue89516. https:\/\/github.com\/llvm\/llvm-project\/issues\/89519"},{"key":"e_1_3_2_54_2","unstructured":"LLVM. 2024.Issue89669. https:\/\/github.com\/llvm\/llvm-project\/issues\/89669"},{"key":"e_1_3_2_55_2","unstructured":"LLVM. 2024.Issue91417. https:\/\/github.com\/llvm\/llvm-project\/issues\/91417"},{"key":"e_1_3_2_56_2","unstructured":"LLVM. 2024.Issue98753. https:\/\/github.com\/llvm\/llvm-project\/issues\/98753"},{"key":"e_1_3_2_57_2","unstructured":"LLVM. 2024.Issue98838. https:\/\/github.com\/llvm\/llvm-project\/issues\/98838"},{"key":"e_1_3_2_58_2","doi-asserted-by":"crossref","unstructured":"Nuno P. Lopes Juneyoung Lee Chung-Kil Hur Zhengyang Liu and John Regehr. 2021. Alive2: Bounded Translation Validation for LLVM. In ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI).","DOI":"10.1145\/3453483.3454030"},{"key":"e_1_3_2_59_2","doi-asserted-by":"crossref","unstructured":"George C. Necula. 2000. Translation Validation for an Optimizing Compiler. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).","DOI":"10.1145\/349299.349314"},{"key":"e_1_3_2_60_2","doi-asserted-by":"crossref","unstructured":"Jihyeok Park Seungmin An Dongjun Youn Gyeongwon Kim and Sukyoung Ryu. 2021. JEST: N+1-Version Differential Testing of Both JavaScript Engines and Specification. In (Proceedings of the 43rd International Conference on Software Engineering (ICSE)).","DOI":"10.1109\/ICSE43902.2021.00015"},{"key":"e_1_3_2_61_2","doi-asserted-by":"crossref","unstructured":"Soyeon Park Wen Xu Insu Yun Daehee Jang and Taesoo Kim. 2020. Fuzzing JavaScript Engines with Aspect-preserving Mutation. In IEEE Symposium on Security and Privacy (SP). IEEE.","DOI":"10.1109\/SP40000.2020.00067"},{"key":"e_1_3_2_62_2","doi-asserted-by":"crossref","unstructured":"A. Pnueli M. Siegel and E. Singerman. 1998. Translation Validation. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS).","DOI":"10.1007\/BFb0054170"},{"key":"e_1_3_2_63_2","unstructured":"Chengnian Sun Vu Le and Zhendong Su. 2016. Finding Compiler Bugs via Live Code Mutation. In Proceedings of the ACM SIGPLAN International Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA)."},{"key":"e_1_3_2_64_2","unstructured":"Junjie Wang Xiaoning Du Zhiyi Zhang Shuang Liu and Junjie Chen. 2023. FuzzJIT: Oracle-enhanced Fuzzing for JavaScript Engine JIT Compiler. In USENIX Security Symposium (Security)."},{"key":"e_1_3_2_65_2","unstructured":"Mingyuan Wu Minghai Lu Heming Cui Junjie Chen Yuqun Zhang and Lingming Zhang. 2023. JITfuzz: Coverage-guided Fuzzing for JVM Just-in-Time Compilers. In Proceedings of the International Conference on Software Engineering (ICSE)."},{"key":"e_1_3_2_66_2","doi-asserted-by":"crossref","unstructured":"Chenyuan Yang Yinlin Deng Runyu Lu Jiayi Yao Jiawei Liu Reyhaneh Jabbarvand and Lingming Zhang. 2024. WhiteFox: White-Box Compiler Fuzzing Empowered by Large Language Models. Proceedings of the ACM SIGPLAN Object-oriented Programming Systems Languages and Applications (OOPSLA) (2024).","DOI":"10.1145\/3689736"},{"key":"e_1_3_2_67_2","doi-asserted-by":"crossref","unstructured":"Xuejun Yang Yang Chen Eric Eide and John Regehr. 2011. Finding and Understanding Bugs in C Compilers. In ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI).","DOI":"10.1145\/1993498.1993532"},{"key":"e_1_3_2_68_2","doi-asserted-by":"crossref","unstructured":"A. Zeller and R. Hildebrandt. 2002. Simplifying and Isolating Failure-Inducing Input. IEEE Transactions on Software Engineering (2002).","DOI":"10.1109\/32.988498"},{"key":"e_1_3_2_69_2","doi-asserted-by":"crossref","unstructured":"Zhide Zhou Zhilei Ren Guojun Gao and He Jiang. 2021. An Empirical Study of Optimization Bugs in GCC and LLVM. Journal of Systems and Software 174 (2021).","DOI":"10.1016\/j.jss.2020.110884"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3729275","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T10:08:17Z","timestamp":1784196497000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3729275"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,10]]},"references-count":68,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2025,6,10]]}},"alternative-id":["10.1145\/3729275"],"URL":"https:\/\/doi.org\/10.1145\/3729275","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,10]]},"assertion":[{"value":"2024-11-15","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-03-06","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-06-13","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}