summaryrefslogtreecommitdiff
path: root/src/tools/wasm-split/split-options.cpp
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2022-07-22 08:21:42 -0700
committerGitHub <noreply@github.com>2022-07-22 08:21:42 -0700
commited704448a6883e9ee0b2f6284f6b5a7b5e7b4aa9 (patch)
tree2db1f5d38f4c86264549366a499c4db6588c585f /src/tools/wasm-split/split-options.cpp
parentaf7c69795668cad3e25a8f80e2e7a9741df97f29 (diff)
downloadbinaryen-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