[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3397537.3397567acmotherconferencesArticle/Chapter ViewAbstractPublication PagesprogrammingConference Proceedingsconference-collections
short-paper

Superoptimization of WebAssembly bytecode

Published: 04 August 2020 Publication History

Abstract

Motivated by the fast adoption of WebAssembly, we propose the first functional pipeline to support the superoptimization of WebAssembly bytecode. Our pipeline works over LLVM and Souper. We evaluate our superoptimization pipeline with 12 programs from the Rosetta code project. Our pipeline improves the code section size of 8 out of 12 programs. We discuss the challenges faced in superoptimization of WebAssembly with two case studies.

References

[1]
Sorav Bansal and Alex Aiken. 2006. Automatic Generation of Peephole Superoptimizers. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (San Jose, California, USA) (ASPLOS XII). Association for Computing Machinery, New York, NY, USA, 394–403.
[2]
Rudy Bunel, Alban Desmaison, M. Pawan Kumar, Philip H. S. Torr, and Pushmeet Kohli. 2016. Learning to superoptimize programs. arXiv e-prints 1, 1, Article arXiv:1611.01787 (Nov. 2016), 10 pages. arXiv: cs.LG/1611.01787
[3]
Google Chrome. 2013. Welcome to Native Client - Google Chrome. Retrieved Dec 27, 2019 from https://developer.chrome.com/native-client
[4]
Berkeley Churchill, Rahul Sharma, JF Bastien, and Alex Aiken. 2017. Sound Loop Superoptimization for Google Native Client. SIGPLAN Not. 52, 4 (April 2017), 313–326.
[5]
Emscripten Community. 2015. emscripten-core/emscripten. Retrieved 2019-12- 11 from https://github.com/emscripten-core/emscripten
[6]
LLVM community. 2019. LLVM 10 documentation. Retrieved 2019-12-12 from http://llvm.org/docs/
[7]
World Wide Web Consortium. 2016. WebAssembly becomes a W3C Recommendation. Retrieved Dec 5, 2019 from https://www.w3.org/2019/12/pressreleasewasm-rec.html
[8]
Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, C. R. Ramakrishnan and Jakob Rehof (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 337–340.
[9]
Sumit Gulwani, Susmit Jha, Ashish Tiwari, and Ramarathnam Venkatesan. 2011. Synthesis of Loop-Free Programs. SIGPLAN Not. 46, 6 (June 2011), 62–73.
[10]
Robbert Gurdeep Singh and Christophe Scholliers. 2019. WARDuino: A Dynamic WebAssembly Virtual Machine for Programming Microcontrollers. In Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes (Athens, Greece) (MPLR 2019). ACM, New York, NY, USA, 27–36.
[11]
Andreas Haas, Andreas Rossberg, Derek L. Schuff, Ben L. Titzer, Michael Holman, Dan Gohman, Luke Wagner, Alon Zakai, and JF Bastien. 2017. Bringing the Web up to Speed with WebAssembly. SIGPLAN Not. 52, 6 (June 2017), 185–200.
[12]
Massalin Henry. 1987. Superoptimizer: a look at the smallest program. ACM SIGARCH Computer Architecture News 15, 5 (Nov 1987), 122–126.
[13]
org/10.1145/36177.36194
[14]
LLVM. 2019. WebAssembly lld port — lld 10 documentation. https://lld.llvm. org/WebAssembly.html
[15]
WebAssembly. Development of WebAssembly and associated infrastructure. 2017. emscripten-core/emscripten. Retrieved 2019-12-11 from https://github.com/ WebAssembly/binaryen
[16]
Raimondas Sasnauskas, Yang Chen, Peter Collingbourne, Jeroen Ketema, Gratian Lup, Jubi Taneja, and John Regehr. 2017. Souper: A Synthesizing Superoptimizer. arXiv e-prints 2, 1, Article arXiv:1711.04422 (Nov. 2017), 10 pages. arXiv: cs.PL/1711.04422

Cited By

View all
  • (2024)Issues and Their Causes in WebAssembly Applications: An Empirical StudyProceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering10.1145/3661167.3661227(170-180)Online publication date: 18-Jun-2024
  • (2024)SuperStack: Superoptimization of Stack-Bytecode via Greedy, Constraint-Based, and SAT TechniquesProceedings of the ACM on Programming Languages10.1145/36564358:PLDI(1437-1462)Online publication date: 20-Jun-2024
  • (2024) Wasm-MutateComputers and Security10.1016/j.cose.2024.103731139:COnline publication date: 16-May-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
Programming '20: Companion Proceedings of the 4th International Conference on Art, Science, and Engineering of Programming
March 2020
228 pages
ISBN:9781450375078
DOI:10.1145/3397537
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 August 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. LLVM
  2. Optimization
  3. Superoptimization
  4. Web
  5. WebAssembly

Qualifiers

  • Short-paper

Funding Sources

  • Stiftelsen för Strategisk Forskning

Conference

<Programming> '20

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)45
  • Downloads (Last 6 weeks)4
Reflects downloads up to 26 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Issues and Their Causes in WebAssembly Applications: An Empirical StudyProceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering10.1145/3661167.3661227(170-180)Online publication date: 18-Jun-2024
  • (2024)SuperStack: Superoptimization of Stack-Bytecode via Greedy, Constraint-Based, and SAT TechniquesProceedings of the ACM on Programming Languages10.1145/36564358:PLDI(1437-1462)Online publication date: 20-Jun-2024
  • (2024) Wasm-MutateComputers and Security10.1016/j.cose.2024.103731139:COnline publication date: 16-May-2024
  • (2024)Os noise mitigations for benchmarking web browser execution environment performanceDiscover Computing10.1007/s10791-024-09471-427:1Online publication date: 29-Oct-2024
  • (2023)Dynamic Slicing of WebAssembly Binaries2023 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME58846.2023.00020(84-96)Online publication date: 1-Oct-2023
  • (2023)metaSafer: A Technique to Detect Heap Metadata Corruption in WebAssemblyIEEE Access10.1109/ACCESS.2023.332781711(124887-124898)Online publication date: 2023
  • (2023)BREWasm: A General Static Binary Rewriting Framework for WebAssemblyStatic Analysis10.1007/978-3-031-44245-2_8(139-163)Online publication date: 24-Oct-2023
  • (2022)Static stack-preserving intra-procedural slicing of webassembly binariesProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510070(2031-2042)Online publication date: 21-May-2022
  • (2021)An Empirical Study of Real-World WebAssembly BinariesProceedings of the Web Conference 202110.1145/3442381.3450138(2696-2708)Online publication date: 19-Apr-2021

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media