package binaryen
Install
Dune Dependency
Authors
Maintainers
Sources
md5=9995941f04c211047dcfdd21a7613013
sha512=98a0f7dd181feec963209996e1a8cb6a62a90f9d54860a81c162ca77909f219de851a854ab263c351b10a54e9f4a600596dd71b0bd93cc71a1da5b99b74eb4a4
doc/binaryen/Binaryen/Passes/index.html
Module Binaryen.Passes
Source
removes arguments to calls in an lto-like manner, and optimizes where we removed
emulates function pointer casts, allowing incorrect indirect calls to (sometimes) work
generate dynCall functions used by emscripten ABI, but only for functions with i64 in their signature (which cannot be invoked via the wasm table without JavaScript BigInt support).
Grand Unified Flow Analysis: optimize the entire program using information about what content can actually appear in each location
legalizes i64 types on the import/export boundary in a minimal manner, only on things only JS will call
lower loads and stores to a 64-bit memory to instead use a 32-bit one
minifies import names (only those, and not export names), and emits a mapping to the minified ones
minifies both import and export names, and emits a mapping to the minified ones
minifies both import and export names, and emits a mapping to the minified ones, and minifies the modules as well
apply the assumption that asyncify imports always unwind, and we never rewind
combines multiple memories into a single memory, trapping if the read or write is larger than the length of the memory's data
optimizes added constants into load/store offsets, propagating them across locals too
computes compile-time evaluatable expressions and propagates them through locals
removes unused module elements that are not functions
miscellaneous globals-related optimizations, and optimizes where we replaced global.gets with constants
miscellaneous locals-related optimizations (no nesting at all; preserves flatness)
miscellaneous locals-related optimizations (no tees or structure)