diff options
author | Alon Zakai <azakai@google.com> | 2021-03-16 11:17:03 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-16 11:17:03 -0700 |
commit | 5fea332e1e6cf2b00334b617bb1bf399e9394592 (patch) | |
tree | fc3672c176024fcebae22155a432f014e7dacf31 /src/passes/OptimizeInstructions.cpp | |
parent | c68c656798daa65f380176394993f301091078b1 (diff) | |
download | binaryen-5fea332e1e6cf2b00334b617bb1bf399e9394592.tar.gz binaryen-5fea332e1e6cf2b00334b617bb1bf399e9394592.tar.bz2 binaryen-5fea332e1e6cf2b00334b617bb1bf399e9394592.zip |
[Wasm GC] Optimize array.set stored values (#3690)
Same as we already do for struct.set.
Diffstat (limited to 'src/passes/OptimizeInstructions.cpp')
-rw-r--r-- | src/passes/OptimizeInstructions.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp index 7f02eb283..7e6b00212 100644 --- a/src/passes/OptimizeInstructions.cpp +++ b/src/passes/OptimizeInstructions.cpp @@ -998,6 +998,13 @@ struct OptimizeInstructions } } + void visitArraySet(ArraySet* curr) { + if (curr->ref->type != Type::unreachable && curr->value->type.isInteger()) { + auto element = curr->ref->type.getHeapType().getArray().element; + optimizeStoredValue(curr->value, element.getByteSize()); + } + } + Index getMaxBitsForLocal(LocalGet* get) { // check what we know about the local return localInfo[get->index].maxBits; |