#ifndef MIGRAPHX_GUARD_MIGRAPHLIB_PASS_MANAGER_HPP #define MIGRAPHX_GUARD_MIGRAPHLIB_PASS_MANAGER_HPP #include #include #include #include namespace migraphx { inline namespace MIGRAPHX_INLINE_NS { struct module_pass_manager { module_pass_manager() = default; module_pass_manager(const module_pass_manager&) = delete; virtual module& get_module() = 0; virtual module* create_module(const std::string& name) = 0; virtual void run_pass(const pass& p) = 0; protected: virtual ~module_pass_manager() {} }; module& get_module(module_pass_manager& mpm); void run_passes(module& mod, const std::vector& passes, tracer trace = tracer{}); void run_passes(program& prog, const std::vector& passes, tracer trace = tracer{}); } // namespace MIGRAPHX_INLINE_NS } // namespace migraphx #endif