summaryrefslogtreecommitdiff
path: root/src/passes/RemoveUnusedModuleElements.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/RemoveUnusedModuleElements.cpp')
-rw-r--r--src/passes/RemoveUnusedModuleElements.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/passes/RemoveUnusedModuleElements.cpp b/src/passes/RemoveUnusedModuleElements.cpp
index 777d2dacc..e91fafcba 100644
--- a/src/passes/RemoveUnusedModuleElements.cpp
+++ b/src/passes/RemoveUnusedModuleElements.cpp
@@ -39,6 +39,7 @@ enum class ModuleElementKind {
typedef std::pair<ModuleElementKind, Name> ModuleElement;
// Finds reachabilities
+// TODO: use Effects to determine if a memory is used
struct ReachabilityAnalyzer : public PostWalker<ReachabilityAnalyzer> {
Module* module;
@@ -119,6 +120,18 @@ struct ReachabilityAnalyzer : public PostWalker<ReachabilityAnalyzer> {
void visitAtomicNotify(AtomicNotify* curr) {
usesMemory = true;
}
+ void visitMemoryInit(MemoryInit* curr) {
+ usesMemory = true;
+ }
+ void visitDataDrop(DataDrop* curr) {
+ usesMemory = true;
+ }
+ void visitMemoryCopy(MemoryCopy* curr) {
+ usesMemory = true;
+ }
+ void visitMemoryFill(MemoryFill* curr) {
+ usesMemory = true;
+ }
void visitHost(Host* curr) {
if (curr->op == CurrentMemory || curr->op == GrowMemory) {
usesMemory = true;