{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,28]],"date-time":"2026-04-28T02:09:44Z","timestamp":1777342184991,"version":"3.51.4"},"publisher-location":"New York, NY, USA","reference-count":74,"publisher":"ACM","license":[{"start":{"date-parts":[[2023,11,30]],"date-time":"2023-11-30T00:00:00Z","timestamp":1701302400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"NSF (National Science Foundation)","doi-asserted-by":"publisher","award":["2047980"],"award-info":[{"award-number":["2047980"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2023,11,30]]},"DOI":"10.1145\/3611643.3616311","type":"proceedings-article","created":{"date-parts":[[2023,11,30]],"date-time":"2023-11-30T23:14:38Z","timestamp":1701386078000},"page":"350-362","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["When Function Inlining Meets WebAssembly: Counterintuitive Impacts on Runtime Performance"],"prefix":"10.1145","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4467-2859","authenticated-orcid":false,"given":"Alan","family":"Romano","sequence":"first","affiliation":[{"name":"University of Southern California, Los Angeles, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1175-4409","authenticated-orcid":false,"given":"Weihang","family":"Wang","sequence":"additional","affiliation":[{"name":"University of Southern California, Los Angeles, USA"}]}],"member":"320","published-online":{"date-parts":[[2023,11,30]]},"reference":[{"key":"e_1_3_2_2_1_1","unstructured":"[n. d.]. Browser Market Share Worldwide. https:\/\/gs.statcounter.com\/browser-market-share."},{"key":"e_1_3_2_2_2_1","unstructured":"[n. d.]. Chromium. https:\/\/www.chromium.org\/Home\/."},{"key":"e_1_3_2_2_3_1","unstructured":"[n. d.]. Clang C Language Family Frontend for LLVM. https:\/\/clang.llvm.org\/."},{"key":"e_1_3_2_2_4_1","unstructured":"[n. d.]. Clang.Cindex \u2014 Libclang 14.0.6 Documentation. https:\/\/libclang.readthedocs.io\/en\/latest\/_modules\/clang\/cindex.html."},{"key":"e_1_3_2_2_5_1","unstructured":"[n. d.]. Inline Functions C++ FAQ. https:\/\/isocpp.org\/wiki\/faq\/inline-functions#inline-and-perf."},{"key":"e_1_3_2_2_6_1","unstructured":"[n. d.]. Intel C\/C++ Compilers Complete Adoption of LLVM. https:\/\/www.intel.com\/content\/www\/us\/en\/developer\/articles\/technical\/adoption-of-llvm-complete-icx.html."},{"key":"e_1_3_2_2_7_1","unstructured":"[n. d.]. The LLVM Compiler Infrastructure Project. https:\/\/llvm.org\/."},{"key":"e_1_3_2_2_8_1","unstructured":"[n. d.]. Llvm-Test-Suite\/Matrix.c at Main \u22c5 Llvm\/Llvm-Test-Suite. https:\/\/github.com\/llvm\/llvm-test-suite."},{"key":"e_1_3_2_2_9_1","unstructured":"[n. d.]. LLVM\u2019s Analysis and Transform Passes \u2014 LLVM 13 Documentation. https:\/\/releases.llvm.org\/13.0.0\/docs\/Passes.html#argpromotion-promote-by-reference-arguments-to-scalars."},{"key":"e_1_3_2_2_10_1","unstructured":"[n. d.]. Main \u2014 Emscripten 3.1.1-Git (Dev) Documentation. https:\/\/emscripten.org\/."},{"key":"e_1_3_2_2_11_1","unstructured":"[n. d.]. Optimizing Code \u2014 Emscripten 3.1.6-Git (Dev) Documentation. https:\/\/emscripten.org\/docs\/optimizing\/Optimizing-Code.html."},{"key":"e_1_3_2_2_12_1","unstructured":"[n. d.]. Puppeteer | Tools for Web Developers. https:\/\/developers.google.com\/web\/tools\/puppeteer."},{"key":"e_1_3_2_2_13_1","unstructured":"[n. d.]. SpiderMonkey \u2014 Firefox Source Docs Documentation. https:\/\/firefox-source-docs.mozilla.org\/js\/index.html."},{"key":"e_1_3_2_2_14_1","unstructured":"[n. d.]. TurboFan \u22c5 V8. https:\/\/v8.dev\/docs\/turbofan."},{"key":"e_1_3_2_2_15_1","unstructured":"[n. d.]. Using JavaScript and WebCL for Numerical Computations: A Comparative Study of Native and Web Technologies: ACM SIGPLAN Notices: Vol 50 No 2. https:\/\/dl.acm.org\/doi\/abs\/10.1145\/2775052.2661090."},{"key":"e_1_3_2_2_16_1","unstructured":"[n. d.]. V8 JavaScript Engine. https:\/\/v8.dev\/."},{"key":"e_1_3_2_2_17_1","unstructured":"[n. d.]. What Is Rustc? - The Rustc Book. https:\/\/doc.rust-lang.org\/rustc\/index.html."},{"key":"e_1_3_2_2_18_1","unstructured":"2022. Binaryen. WebAssembly."},{"key":"e_1_3_2_2_19_1","unstructured":"2022. Libsodium. https:\/\/www.npmjs.com\/package\/libsodium."},{"key":"e_1_3_2_2_20_1","unstructured":"2022. Llvm\/Llvm-Test-Suite\/SingleSource\/Benchmarks\/Misc-C++\/Bigfib.Cpp. LLVM."},{"key":"e_1_3_2_2_21_1","unstructured":"2022. Llvm\/Llvm-Test-Suite\/SingleSource\/Benchmarks\/Misc-C++\/Huffbench.c. LLVM."},{"key":"e_1_3_2_2_22_1","unstructured":"2022. Llvm\/Llvm-Test-Suite\/SingleSource\/Benchmarks\/Polybench\/Linear-Algebra\/Kernels\/Cholesky\/Cholesky.c. LLVM."},{"key":"e_1_3_2_2_23_1","doi-asserted-by":"publisher","unstructured":"Alan and Weihang. [n. d.]. Dataset for \"When Function Inlining Meets WebAssembly: A Counterintuitive Effect on Runtime Performance\". https:\/\/doi.org\/10.5281\/zenodo.7041455 10.5281\/zenodo.7041455","DOI":"10.5281\/zenodo.7041455"},{"key":"e_1_3_2_2_24_1","unstructured":"Antoine. 2013. Answer to \"Clang Optimization Levels\"."},{"key":"e_1_3_2_2_25_1","unstructured":"Clemens Backes. [n. d.]. Liftoff: A New Baseline Compiler for WebAssembly in V8 \u22c5 V8. https:\/\/v8.dev\/blog\/liftoff."},{"key":"e_1_3_2_2_26_1","unstructured":"Matteo Basso. 2022. Awesome Wasm."},{"key":"e_1_3_2_2_27_1","unstructured":"Eli Bendersky. [n. d.]. Parsing C++ in Python with Clang. https:\/\/eli.thegreenplace.net\/2011\/07\/03\/parsing-c-in-python-with-clang."},{"key":"e_1_3_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-008-0071-8"},{"key":"e_1_3_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3363562"},{"key":"e_1_3_2_2_30_1","volume-title":"International Workshop on Languages and Compilers for Parallel Computing. 143\u2013157","author":"Cong Jason","year":"2012","unstructured":"Jason Cong, Bin Liu, Raghu Prabhakar, and Peng Zhang. 2012. A study on the impact of compiler optimizations on high-level synthesis. In International Workshop on Languages and Compilers for Parallel Computing. 143\u2013157."},{"key":"e_1_3_2_2_31_1","unstructured":"Frank Denis. 2023. Libsodium.Js."},{"key":"e_1_3_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3337167.3337171"},{"key":"e_1_3_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1177\/1176935118771972"},{"key":"e_1_3_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062363"},{"key":"e_1_3_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3442381.3450138"},{"key":"e_1_3_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1509864.1509866"},{"key":"e_1_3_2_2_37_1","volume-title":"2019 USENIX Annual Technical Conference (USENIX ATC 19)","author":"Jangda Abhinav","year":"2019","unstructured":"Abhinav Jangda, Bobby Powers, Emery D Berger, and Arjun Guha. 2019. Not so fast: analyzing the performance of webassembly vs. native code. In 2019 USENIX Annual Technical Conference (USENIX ATC 19). 107\u2013120."},{"key":"e_1_3_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10278-018-0082-y"},{"key":"e_1_3_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2021.24078"},{"key":"e_1_3_2_2_40_1","unstructured":"Jukka Jyl\u00e4nki. [n. d.]. WebAssembly for Native Games on the Web \u2013 Mozilla Hacks - the Web Developer Blog. https:\/\/hacks.mozilla.org\/2017\/07\/webassembly-for-native-games-on-the-web."},{"key":"e_1_3_2_2_41_1","volume-title":"International Workshop on Languages and Compilers for Parallel Computing. 32\u201345","author":"Kashnikov Yuriy","year":"2012","unstructured":"Yuriy Kashnikov, Jean Christophe Beyler, and William Jalby. 2012. Compiler optimizations: Machine learning versus o3. In International Workshop on Languages and Compilers for Parallel Computing. 32\u201345."},{"key":"e_1_3_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/2666356.2594334"},{"key":"e_1_3_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2858965.2814319"},{"key":"e_1_3_2_2_44_1","first-page":"17","volume-title":"29th USENIX Security Symposium (USENIX Security 20)","author":"Lehmann Daniel","year":"2020","unstructured":"Daniel Lehmann, Johannes Kinder, and Michael Pradel. 2020. Everything Old Is New Again: Binary Security of \\ \\WebAssembly \\\\. In 29th USENIX Security Symposium (USENIX Security 20). 217\u2013234. isbn:978-1-939133-17-5"},{"key":"e_1_3_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3297858.3304068"},{"key":"e_1_3_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523449"},{"key":"e_1_3_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.48550\/arXiv.2110.15433"},{"key":"e_1_3_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/3460945.3464952"},{"key":"e_1_3_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1109\/AICCSA.2011.6126611"},{"key":"e_1_3_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-22233-7_35"},{"key":"e_1_3_2_2_51_1","unstructured":"Judy McConnell. [n. d.]. WebAssembly Support Now Shipping in All Major Browsers | The Mozilla Blog. https:\/\/blog.mozilla.org\/en\/mozilla\/webassembly-in-browsers\/."},{"key":"e_1_3_2_2_52_1","unstructured":"MDN contributors. [n. d.]. Performance.Now() - Web APIs | MDN. https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Performance\/now."},{"key":"e_1_3_2_2_53_1","unstructured":"Benedikt Meurer. [n. d.]. An Overview of the TurboFan Compiler."},{"key":"e_1_3_2_2_54_1","unstructured":"Mozilla. [n. d.]. Download the Fastest Firefox Ever. https:\/\/www.mozilla.org\/en-US\/firefox\/new\/."},{"key":"e_1_3_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-99073-6_1"},{"key":"e_1_3_2_2_56_1","first-page":"24","volume-title":"30th USENIX Security Symposium (USENIX Security 21)","author":"Narayan Shravan","year":"2021","unstructured":"Shravan Narayan, Craig Disselkoen, Daniel Moghimi, Sunjay Cauligi, Evan Johnson, Zhao Gang, Anjo Vahldiek-Oberwagner, Ravi Sahita, Hovav Shacham, Dean Tullsen, and Deian Stefan. 2021. Swivel: Hardening \\ \\WebAssembly \\ against Spectre. In 30th USENIX Security Symposium (USENIX Security 21). 1433\u20131450. isbn:978-1-939133-24-3"},{"key":"e_1_3_2_2_57_1","unstructured":"Node.js. [n. d.]. Node.Js. https:\/\/nodejs.org\/en\/."},{"key":"e_1_3_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/1533057.1533067"},{"key":"e_1_3_2_2_59_1","unstructured":"Louis-No\u00ebl Pouchet and Tomofumi Yuki. [n. d.]. PolyBench\/C. https:\/\/web.cse.ohio-state.edu\/~ pouchet.2\/software\/polybench\/."},{"key":"e_1_3_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2019.00064"},{"key":"e_1_3_2_2_61_1","unstructured":"Alan Romano Daniel Lehmann Michael Pradel and Weihang Wang. [n. d.]. Wobfuscator: Obfuscating JavaScript Malware via Opportunistic Translation to WebAssembly. 16."},{"key":"e_1_3_2_2_62_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678776"},{"key":"e_1_3_2_2_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/3324884.3415293"},{"key":"e_1_3_2_2_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/3377812.3382155"},{"key":"e_1_3_2_2_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/3324884.3416580"},{"key":"e_1_3_2_2_66_1","unstructured":"Daniel Smilkov Nikhil Thorat and Ann Yuan. [n. d.]. Introducing the WebAssembly Backend for TensorFlow.Js."},{"key":"e_1_3_2_2_67_1","doi-asserted-by":"publisher","DOI":"10.1145\/2931037.2931074"},{"key":"e_1_3_2_2_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/3503222.3507744"},{"key":"e_1_3_2_2_69_1","unstructured":"Marco Trivellato. [n. d.]. WebAssembly Is Here!. https:\/\/blog.unity.com\/technology\/webassembly-is-here."},{"key":"e_1_3_2_2_70_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290390"},{"key":"e_1_3_2_2_71_1","doi-asserted-by":"publisher","DOI":"10.1145\/3360559"},{"key":"e_1_3_2_2_72_1","doi-asserted-by":"publisher","DOI":"10.1145\/3487552.3487827"},{"key":"e_1_3_2_2_73_1","unstructured":"Alon Zakai. 2018. The Binaryen Optimizer Goes Up To 4."},{"key":"e_1_3_2_2_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062379"}],"event":{"name":"ESEC\/FSE '23: 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","location":"San Francisco CA USA","acronym":"ESEC\/FSE '23","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering"]},"container-title":["Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3611643.3616311","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3611643.3616311","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:36:04Z","timestamp":1750178164000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3611643.3616311"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,11,30]]},"references-count":74,"alternative-id":["10.1145\/3611643.3616311","10.1145\/3611643"],"URL":"https:\/\/doi.org\/10.1145\/3611643.3616311","relation":{},"subject":[],"published":{"date-parts":[[2023,11,30]]},"assertion":[{"value":"2023-11-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}