24 #include "ngraph/pass/pass.hpp"
25 #include "ngraph/pass/validate.hpp"
38 explicit Manager(std::shared_ptr<PassConfig> pass_config);
52 template <
typename T,
bool Enable =
true,
class... Args>
55 auto rc = push_pass<T>(std::forward<Args>(args)...);
56 rc->set_pass_config(m_pass_config);
57 if (m_per_pass_validation)
59 push_pass<Validate>();
61 if (!Enable && !m_pass_config->is_enabled<T>())
63 m_pass_config->disable<T>();
68 void run_passes(std::shared_ptr<Function>);
70 void set_pass_visualization(
bool new_state) { m_visualize = new_state; }
101 NGRAPH_DEPRECATED(
"Please use get_pass_config() to configure transformation pipeline")
102 void set_callback(const param_callback& callback)
104 m_pass_config->set_callback(callback);
113 template <
typename T,
class... Args>
114 std::shared_ptr<T> push_pass(Args&&... args)
116 static_assert(std::is_base_of<pass::PassBase, T>::value,
117 "pass not derived from pass base");
118 auto pass = std::make_shared<T>(std::forward<Args>(args)...);
119 auto pass_base = std::static_pointer_cast<PassBase>(pass);
120 m_pass_list.push_back(pass_base);
124 std::shared_ptr<PassConfig> m_pass_config;
125 std::vector<std::shared_ptr<PassBase>> m_pass_list;
126 bool m_visualize =
false;
127 bool m_per_pass_validation =
true;
Definition: manager.hpp:32
std::shared_ptr< T > register_pass(Args &&... args)
Register given transformation class type to execution list Example below show the basic usage of pass...
Definition: manager.hpp:53
std::shared_ptr< PassConfig > get_pass_config()
Definition: manager.hpp:111
void set_per_pass_validation(bool new_state)
Set flag to enable/disable running Validate pass after executing each registered pass.
Definition: manager.hpp:74
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:28