summaryrefslogtreecommitdiff
path: root/src/passes/DeadCodeElimination.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/passes/DeadCodeElimination.cpp')
-rw-r--r--src/passes/DeadCodeElimination.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/passes/DeadCodeElimination.cpp b/src/passes/DeadCodeElimination.cpp
index 4215de3f8..bf1c0705a 100644
--- a/src/passes/DeadCodeElimination.cpp
+++ b/src/passes/DeadCodeElimination.cpp
@@ -361,6 +361,8 @@ struct DeadCodeElimination
DELEGATE(RefIsNull);
case Expression::Id::RefFuncId:
DELEGATE(RefFunc);
+ case Expression::Id::RefEqId:
+ DELEGATE(RefEq);
case Expression::Id::TryId:
DELEGATE(Try);
case Expression::Id::ThrowId:
@@ -527,6 +529,14 @@ struct DeadCodeElimination
blockifyReachableOperands({curr->delta}, curr->type);
}
+ void visitRefIsNull(RefIsNull* curr) {
+ blockifyReachableOperands({curr->value}, curr->type);
+ }
+
+ void visitRefEq(RefEq* curr) {
+ blockifyReachableOperands({curr->left, curr->right}, curr->type);
+ }
+
void visitFunction(Function* curr) { assert(reachableBreaks.size() == 0); }
};