mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-17 03:25:46 +00:00
f5361909e2
PR: 229542 Submitted by: Greg V <greg@unrelenting.technology>
22 lines
1.4 KiB
Plaintext
22 lines
1.4 KiB
Plaintext
The aim of Binaryen, a compiler and toolchain infrastructure library for
|
|
WebAssembly, is to make compiling to WebAssembly easy, fast, and effective.
|
|
|
|
* Easy: Binaryen has a simple C API in a single header, and can also be used
|
|
from JavaScript. It accepts input in WebAssembly-like form but also accepts
|
|
a general control flow graph for compilers that prefer that.
|
|
* Fast: Binaryen's internal IR uses compact data structures and is designed for
|
|
completely parallel codegen and optimization, using all available CPU cores.
|
|
Binaryen's IR also compiles down to WebAssembly extremely easily and quickly
|
|
because it is essentially a subset of WebAssembly.
|
|
* Effective: Binaryen's optimizer has many passes that can improve code very
|
|
significantly (e.g. local coloring to coalesce local variables; dead code
|
|
elimination; precomputing expressions when possible at compile time; etc.).
|
|
These optimizations aim to make Binaryen powerful enough to be used as a
|
|
compiler backend by itself. One specific area of focus is on
|
|
WebAssembly-specific optimizations (that general-purpose compilers might not
|
|
do), which you can think of as wasm minification, similar to minification for
|
|
JavaScript, CSS, etc., all of which are language-specific (an example of such
|
|
an optimization is block return value generation in SimplifyLocals).
|
|
|
|
WWW: https://github.com/WebAssembly/binaryen
|