#pragma once #include #include #include #include namespace torch::jit::graph_rewrite_helper { std::string getFuncName(Value* func_value); Value* getValue( const std::string& name, const std::unordered_map& match_vmap, const std::unordered_map& vmap); std::optional getIValue( const std::string& name, const std::unordered_map& match_vmap, const std::unordered_map& vmap); TORCH_API void replaceConvolutionWithAtenConv(std::shared_ptr& graph); bool isClampFusable( const Match& match, const std::unordered_map& vmap); // This struct contains a compiled IR patterns slated for use in the // findPatternMatches function. The struct encapsulates the common // information from parseIR that is used in conjunction with the // pattern matching facility. A const instance of this struct can // also be stored away to cache the compiled IR pattern and reduce // runtime cost struct PatternInfo { std::string pattern_string; std::unique_ptr pattern_graph; std::unordered_map vmap; std::vector filters; static PatternInfo parse_from_str( std::string pattern_string, const std::vector& filters = {}) { PatternInfo rv{ std::move(pattern_string), std::make_unique(), decltype(vmap){}, filters}; parseIR(rv.pattern_string, rv.pattern_graph.get(), rv.vmap); return rv; } }; } // namespace torch::jit::graph_rewrite_helper