summaryrefslogtreecommitdiff
path: root/third_party/llvm-project/StringMap.cpp
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2019-12-16 16:30:05 -0800
committerGitHub <noreply@github.com>2019-12-16 16:30:05 -0800
commit48ccb2bb8a7d013abba4667dfc0fb46548bef2af (patch)
treed9fd6361f11b74670498808180418b275a6c750f /third_party/llvm-project/StringMap.cpp
parent2a972a9457a42b274848ae3e8790333328e65ead (diff)
downloadbinaryen-48ccb2bb8a7d013abba4667dfc0fb46548bef2af.tar.gz
binaryen-48ccb2bb8a7d013abba4667dfc0fb46548bef2af.tar.bz2
binaryen-48ccb2bb8a7d013abba4667dfc0fb46548bef2af.zip
Implement 0-len/drop spec changes in bulk memory (#2529)
This implements recent bulk memory spec changes (WebAssembly/bulk-memory-operations#126) in Binaryen. Now `data.drop` is equivalent to shrinking a segment size to 0, and dropping already dropped segments or active segments (which are thought to be dropped in the beginning) is treated as a no-op. And all bounds checking is performed in advance, so partial copying/filling/initializing does not occur. I tried to implement `visitDataDrop` in the interpreter as `segment.data.clear();`, which is exactly what the revised spec says. I didn't end up doing that because this also deletes all contents from active segments, and there are cases we shouldn't do that: - `wasm-ctor-eval` shouldn't delete active segments, because it will store the changed contents back into segments - When `--fuzz-exec` is given to `wasm-opt`, it runs the module and compare the execution call results before and after transformations. But if running a module will nullify all active segments, applying any transformation to the module or re-running it does not make any sense.
Diffstat (limited to 'third_party/llvm-project/StringMap.cpp')
0 files changed, 0 insertions, 0 deletions