12 #include "ngraph/pass/pass.hpp"
13 #include "ngraph/pass/validate.hpp"
26 explicit Manager(std::shared_ptr<PassConfig> pass_config);
40 template <
typename T,
bool Enable =
true,
class... Args>
43 auto rc = push_pass<T>(std::forward<Args>(args)...);
44 rc->set_pass_config(m_pass_config);
45 if (m_per_pass_validation)
47 push_pass<Validate>();
49 if (!Enable && !m_pass_config->is_enabled<T>())
51 m_pass_config->disable<T>();
56 void run_passes(std::shared_ptr<Function>);
58 void set_pass_visualization(
bool new_state) { m_visualize = new_state; }
89 NGRAPH_DEPRECATED(
"Please use get_pass_config() to configure transformation pipeline")
90 void set_callback(const param_callback& callback)
92 m_pass_config->set_callback(callback);
102 template <
typename T,
class... Args>
103 std::shared_ptr<T> push_pass(Args&&... args)
105 static_assert(std::is_base_of<pass::PassBase, T>::value,
106 "pass not derived from pass base");
107 auto pass = std::make_shared<T>(std::forward<Args>(args)...);
108 auto pass_base = std::static_pointer_cast<PassBase>(pass);
109 m_pass_list.push_back(pass_base);
113 std::shared_ptr<PassConfig> m_pass_config;
114 std::vector<std::shared_ptr<PassBase>> m_pass_list;
115 bool m_visualize =
false;
116 bool m_per_pass_validation =
true;
Definition: manager.hpp:20
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:41
std::shared_ptr< PassConfig > get_pass_config()
Definition: manager.hpp:99
void set_per_pass_validation(bool new_state)
Set flag to enable/disable running Validate pass after executing each registered pass.
Definition: manager.hpp:62
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:16