#ifndef MIGRAPHX_GUARD_AUTO_REGISTER_VERIFY_PROGRAM_HPP #define MIGRAPHX_GUARD_AUTO_REGISTER_VERIFY_PROGRAM_HPP #include #include #include struct program_info { std::string name; std::string section; std::function get_program; }; void register_program_info(const program_info& pi); const std::vector& get_programs(); struct register_verify_program_action { template static void apply() { T x; program_info pi; pi.name = migraphx::get_type_name(); pi.section = x.section(); pi.get_program = [x] { return x.create_program(); }; register_program_info(pi); } }; template using auto_register_verify_program = migraphx::auto_register; template struct verify_program : auto_register_verify_program { std::string section() const { return "general"; }; }; #endif