PhD Dissertation Proposal Defense: Angela Upreti, Design and Implementation of optimizations for Web Assembly Extended with Transactions and Persistence
Content
Speaker
Abstract
WebAssembly (wasm) has made it easier to make use of high-level languages for the web. Languages such as JavaScript and C can be compiled into WebAssembly and executed by WebAssembly engines like V8. It is particularly valued for the speed, space efficiencies and safety it offers when running code in a browser context.
An active area of research in the lab involves extending WebAssembly to support simple transactions with persistence. This extension introduces new transaction-related opcodes and by design, the transactional code executes using a separate transactional memory and a transactional heap.
This thesis will explore optimizations related to these new opcodes and functionality. For instance, transactional reference types include a permission —none, read, or write. For memory accesses that occur close together in time, we plan to leverage these permissions to implement and evaluate optimizations such as eliminating redundant permission checks, hoisting casts to write permissions, moving casts outside loops or functions, fusing sequential transactions, and more.
To accomplish this research, we will extend an existing wasm to wasm optimizer, Binaryen. The WebAssembly parser and validator in Binaryen have been modified to support simple transactions. This thesis will introduce new optimization passes for the WebAssembly with simple transactions and persistence. We will then evaluate our optimizations by comparing the performance of the optimized transactional WebAssembly with the unoptimized version.
Advisor
Eliot J. Moss