[TM-262] Extend set of rules where DIP is redundant
Description
Problem: our optimizer has noDipNeeded
rule, but it does not
consider some cases where DIP
can be erased.
Solution: add two new rules:
-
UNIT
followed byDIP
, it is essentially the same asPUSH
followed byDIP
. -
DIP
followed byDROP
.
Related issue(s)
https://issues.serokell.io/issue/TM-262
✅ Checklist for your Merge Request
Related changes (conditional)
-
Tests (see short guidelines)
-
If I added new functionality, I added tests covering it. -
If I fixed a bug, I added a regression test to prevent the bug from silently reappearing again.
-
-
Documentation
Stylistic guide (mandatory)
-
My commits comply with the following policy. -
My code complies with the style guide.