[−][src]Enum binaryen_sys::passes::OptimizationPass
Variants
lower unaligned loads and stores to smaller aligned ones
async/await style transform, allowing pausing and resuming
Tries to avoid reinterpret operations via more loads
removes arguments to calls in an lto-like manner
optimizes where we removed
reduce # of locals by coalescing
reduce # of locals by coalescing and learning
push code forward, potentially making it not always execute
fold code, merging duplicates
hoist repeated constants to a local
removes unreachable code
forces all loads and stores to have alignment 1
instrument the wasm to convert NaNs into 0 at runtime
turns indirect calls into direct ones
optimizes using the DataFlow SSA IR
dump DWARF debug info sections from the read binary
removes duplicate imports
removes duplicate functions
emit the target features section in the output
Convert PIC ABI from llvm to emscripten
Convert PIC ABI from llvm to emscripten
leaves just one function (useful for debugging)
flattens out code, removing nesting
calls to (sometimes) work
reports function metrics
generate dynCall fuctions used by emscripten ABI
via the wasm table without JavaScript BigInt support).
generate Stack IR
inline __original_main into main
inline functions (you probably want inlining-optimizing)
inline functions and optimizes where we inlined
legalizes i64 types on the import/export boundary
manner, only on things only JS will call
common subexpression elimination inside basic blocks
instrument the build with logging of where execution goes
lower all uses of i64s to use i32s instead
instrument the build with code to intercept all loads and stores
instrument the build with code to intercept all loads and stores
loop invariant code motion
attempt to merge segments to fit within web limits
packs memory into separate segments, skipping zeros
merges blocks to their parents
merges locals when beneficial
reports metrics
emits a mapping to the minified ones
the minified ones
the minified ones, and minifies the modules as well
and we never rewind
apply the assumption that asyncify never unwinds
name list
will never be exited
optimizes added constants into load/store offsets
them across locals too
optimizes instruction combinations
optimize Stack IR
pick load signs based on their uses
eliminates redundant ARC patterns in AssemblyScript output
eliminates collapsed ARC patterns after other optimizations
miscellaneous optimizations for Emscripten-generated code
computes compile-time evaluatable expressions
them through locals
print in s-expression format
print in minified s-expression format
print options for enabled features
print in full s-expression format
print call graph
print a map of function indexes to names
print out Stack IR (useful for internal debugging)
removes operations incompatible with js
removes imports and replaces them with nops
removes memory segments
removes breaks from locations that are not needed
removes unused module elements
removes unused module elements that are not functions
removes names from locations that are never branched to
sorts functions by access frequency
sorts locals by access frequency
re-optimize control flow using the relooper algorithm
imported functions.
remove redundant local.sets
write the module to binary, then read it
instrument loads and stores to check for invalid behavior
miscellaneous globals-related optimizations
where we replaced global.gets with constants
miscellaneous locals-related optimizations
preserves flatness)
miscellaneous locals-related optimizations (no tees)
miscellaneous locals-related optimizations (no structure)
miscellaneous locals-related optimizations (no tees or structure)
emit Souper IR in text form
emit Souper IR in text form (single-use nodes only)
spill pointers to the C stack (useful for Boehm-style GC)
stub out unsupported JS operations
ssa-ify variables so that they have a single assignment
ssa-ify variables so that they have a single assignment, ignoring merges
deprecated; same as strip-debug
enforce limits on llvm's __stack_pointer global
strip debug info (including the names section)
strip dwarf debug info
strip the wasm producers section
strip the wasm target features section
replace trapping operations with clamping semantics
replace trapping operations with js semantics
removes local.tees, replacing them with sets and gets
removes obviously unneeded code
Trait Implementations
impl Debug for OptimizationPass
[src]
impl Eq for OptimizationPass
[src]
impl FromStr for OptimizationPass
[src]
type Err = ()
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Self, Self::Err>
[src]
impl PartialEq<OptimizationPass> for OptimizationPass
[src]
fn eq(&self, other: &OptimizationPass) -> bool
[src]
#[must_use]fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl StructuralEq for OptimizationPass
[src]
impl StructuralPartialEq for OptimizationPass
[src]
Auto Trait Implementations
impl RefUnwindSafe for OptimizationPass
impl Send for OptimizationPass
impl Sync for OptimizationPass
impl Unpin for OptimizationPass
impl UnwindSafe for OptimizationPass
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,