* Refactor NopElimination; Execute NopEliminatoin inside MOC Backend
* Add missing header
* Refactor tests; use weak_ptr to avoid excess consumers for node
* Add test to check number of shared_ptr usages for graph nodes during Manager execution
* Remove AlgebraicSimplification forewer
* Partially removed cmake duplication with IE cmake
* Deprecated API usage: fixed or suppressed
* Fix for TypeRelaxed
* Canonical form for ngraph includes
* Removed extra visibilit settings; removed graphviz find_package
* Removed var_functions module; canonical includes for ngraph::reference
* Fixed deprecated API in ngraph tests
* Re-use standard cmake macro for shared libs
* Trying to fix ONNX importer tests
* Initial version of transformation callback refactoring
* Improved fine-grain tuning for transformation pipeline
* Check disabled matchers in GraphRewrite
* Avoid deprecated classes inside PassConfig
* Enabled DepthToSpace fusion by default
* Removed doulbe search in map
* Moved back pass_config.hpp; Added doxygen documentation for new class and methods
* Added doxygen comment for Manager and GraphRewrite new mthods
* RTTI base for ngraph::Node; cherry-pick from another branch, draft
* Added comments, moved code, switched to custom RTTI-based version of is_type
* Move rtti definitions in ngraph op class to the beginning of each class definition as a preparation for the next replacement
* Migrate part of operations to new RTTI
* Migrate GroupConvolution and Concat to new RTTI
* Apply code style for ngraph part
* Rename RTTI_DECLARATION/DEFINITION to NGRAPH_RTTI_DECLARATION/DEFINITION
* Reverted accidentally updated version of mkldnn
* TMP: rewrite RTTI back to constexprions as an attempt to fix static objects initialization order issue
* Apply ngraph code style
* Finalize move back to constexpr for RTTI
* Applied code-style
* Fix in fast algorithm in GraphRewrite, add new tests for this and other cases
* Make parent optional parameter for NGRAPH_RTTI_DECLARATION and remove Node::type_info; remove ability to have Node as a parent for type_info
* Try to resolve compilation error on Windows
* The next attempt to fix Windows build: re-introduce get_type_info_static
* Removed file that was removed in master and kept in this branch by mistake
* Next attempt to fix Windows build: externConstexpr
* Attempt to fix win build: extra public (suspect icc bug), remove get_type_info_static as useless.
* Next attempt to fix Windows: proxy const and constexpr
* Fixed constexpr
* Next attmpts: move get_type_info to cpp file
* Code stype fix
* Re-implemented RTTI without use of constexpr; run-time initialization is used; removed global definitions to avoid issues with order of static objects initialization
* Remove already unncecessary compiler flag for Windows
* get_type_info_static initializes static local constant with type_info that is used for CLASS::type_info and CLASS::get_type_info
* Rewrite commens for NGRAPH_RTTI_... macros, remove not used header
This PR introduces next changes:
1. Transformations *_tbl.hpp files were replaced with direct registration in cpp files.
2. Plugins use pass::Manager to call conversion passes.
3. Transformations callback was moved to PassBase class as there is no more need to keep it in separate class
4. All pattern based transformations must be inherited from MatcherPass class. GraphRewrite class will be used only for matchers registration and execution on function.
MatcherPass class adds new features to pattern-based transformations approach:
* Allows to run matcher pass on a single node.
* Operations that were created inside transformation callback can be added to execution list to be available for pattern matching within single GraphRewrite.
5. GraphRewrite MatchClosure was replaced with MatcherPass. So all matchers will be registered as a MatcherPass.
6. Added pass::Manager::clear_state() method to avoid dependency with nodes that no longer belongs to function after replacement.
7. Some representative transformations were updated to use MatcherPass as an example.
8. Mul->Add sequence fusion transformation was replaced with LinOpSequenceFusion.
9. Pattern and callback registration code was moved to class c-tors (will be finished for remaining passes in other PR) .
10. Updated pass::Manager to get pass names only when NGRAPH_PROFILE_PASS_ENABLE enabled.
11. Moving towards removing PassProperty.
12. Added ngraph::pattern::wrap_type<T>(inputs, pred) to simplify pattern creation.
13. GraphRewrite was updated to execute MatcherPass more efficient.