diff options
Diffstat (limited to 'src/passes/DeadCodeElimination.cpp')
-rw-r--r-- | src/passes/DeadCodeElimination.cpp | 10 |
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); } }; |