summaryrefslogtreecommitdiff
path: root/src/passes/Directize.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2019-03-25 14:11:02 -0700
committerGitHub <noreply@github.com>2019-03-25 14:11:02 -0700
commit5e19a7b05144736ec17ee6b0bb366afa744137c6 (patch)
tree0b2ef9840759e501b8c519e46e57e887a2f31044 /src/passes/Directize.cpp
parent5d240dc566267ec1871df8b43e53cb56b2d2ff40 (diff)
downloadbinaryen-5e19a7b05144736ec17ee6b0bb366afa744137c6.tar.gz
binaryen-5e19a7b05144736ec17ee6b0bb366afa744137c6.tar.bz2
binaryen-5e19a7b05144736ec17ee6b0bb366afa744137c6.zip
Semi-SSA improvements (#1965)
This adds an ssa-nomerge pass, which like ssa creates new local indexes for each set, but it does not alter indexes that have merges (in practice adding indexes to merges can lead to more copies in the end.) This also stops adding a new local index for a set that is already in "ssa form", that is, has only one set (aside from the zero initialization which wasm mandates, but for an "ssa form" index, that must not be used). This then enables ssa-nomerge in -O3 and -Os. This doesn't help much on well-optimized code like from the wasm backend (but it does sometimes - 0.5% code size improvement on Box2D), but on AssemblyScript for example it can remove a copy in the n-body benchmark as can be seen in the test updates here.
Diffstat (limited to 'src/passes/Directize.cpp')
0 files changed, 0 insertions, 0 deletions