diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/passes/CoalesceLocals.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/passes/CoalesceLocals.cpp b/src/passes/CoalesceLocals.cpp index 7b2505094..f9ded9c92 100644 --- a/src/passes/CoalesceLocals.cpp +++ b/src/passes/CoalesceLocals.cpp @@ -515,7 +515,12 @@ void CoalesceLocals::applyIndices(std::vector<Index>& indices, continue; } } - // TODO: do the same for a tee + if (auto* subSet = set->value->dynCast<LocalSet>()) { + if (subSet->index == set->index) { + set->value = subSet->value; + continue; + } + } // remove ineffective actions if (!action.effective) { // value may have no side effects, further optimizations can eliminate |