diff options
author | Alon Zakai <azakai@google.com> | 2022-07-22 08:21:42 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-22 08:21:42 -0700 |
commit | ed704448a6883e9ee0b2f6284f6b5a7b5e7b4aa9 (patch) | |
tree | 2db1f5d38f4c86264549366a499c4db6588c585f /src/tools/wasm-split/split-options.cpp | |
parent | af7c69795668cad3e25a8f80e2e7a9741df97f29 (diff) | |
download | binaryen-ed704448a6883e9ee0b2f6284f6b5a7b5e7b4aa9.tar.gz binaryen-ed704448a6883e9ee0b2f6284f6b5a7b5e7b4aa9.tar.bz2 binaryen-ed704448a6883e9ee0b2f6284f6b5a7b5e7b4aa9.zip |
Grand Unified Flow Analysis (GUFA) (#4598)
This tracks the possible contents in the entire program all at once using a single IR.
That is in contrast to say DeadArgumentElimination of LocalRefining etc., all of whom
look at one particular aspect of the program (function params and returns in DAE,
locals in LocalRefining). The cost is to build up an entire new IR, which takes a lot
of new code (mostly in the already-landed PossibleContents). Another cost
is this new IR is very big and requires a lot of time and memory to process.
The benefit is that this can find opportunities that are only obvious when looking
at the entire program, and also it can track information that is more specialized
than the normal type system in the IR - in particular, this can track an ExactType,
which is the case where we know the value is of a particular type exactly and not
a subtype.
Diffstat (limited to 'src/tools/wasm-split/split-options.cpp')
0 files changed, 0 insertions, 0 deletions