[Chore] Split optimizer module
Description
Problem: optimizer module is quite large and hard to work with. Furthermore, since we disable pattern match coverage checker there, the potential for making mistakes is rather high.
Solution: Split into several modules, one filled almost exclusively with rules.
Also add the missing pattern in the Buildable OptimizationStage instance.
Related issue(s)
Resolves None
✅ 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.
Edited by Nikolay Yakimov