WarpL is our proposed mutation-based method to pinpoint the exact suboptimal instruction sequences responsible for performance issues in Wasm runtimes. The above is our prototype implementation for performance issues in Wasmtime, WasmEdge, and Wasmer. For more details, you can read our paper, Debugging Performance Issues in WebAssembly Runtimes via Mutation-based Inference (published in ICSE'2026).
WarpL
├── experiment_data # evaluation on 12 performance issues
├── source_code
│ ├── analysis_scripts # scripts that coordinate the whole workflow of WarpL
│ ├── binaryen-mutate # fine-grained Wasm bytecode mutation based on binaryen
│ └── WasmEdge-dump # modified WasmEdge which can dump machine code when compilation
└── README.md- Install Pre-requirement
wasm-reduce: https://github.com/WebAssembly/binaryenwasm2wat: https://github.com/WebAssembly/wabt
- Build
wasm-mutate
cd binaryen-mutategit initgit submodule initgit submodule updatecmake .- If this commands fails, check whether the submodules are downloaded successfully in
third_party
- If this commands fails, check whether the submodules are downloaded successfully in
make -j8
Check whether bin/wasm-mutate --help can run successfully.
- Start Analysis
- copy the whole
analysis_scriptsfolder asanalysis - move the bug-inducing wasm program into
analysisfolder and rename it ascase.wasm cd analysis- update the configurations in
config.ini run python3 run.py
The report will be generated at diff/index.html